STL 有序关联容器详解
在 C++ 中,当需要快速查找数据或维护唯一性时,STL 的关联容器是首选。set、multiset、map 和 multimap 基于红黑树实现,默认保持元素有序。它们的核心区别在于是否允许重复键值,以及存储的是单一值还是键值对。
1. set 容器
set 存储唯一键值,插入重复元素会被忽略。底层为平衡二叉搜索树(红黑树)。
构造函数与初始化
支持迭代器区间构造、拷贝构造及初始化列表构造。
void test01() {
vector<int> v({ 4,5,2,9,6,8,3,1,7,7,7,7 });
set<int> st1(v.begin(), v.end()); // 迭代器区间构造
set<int> st2(st1); // 拷贝构造
set<int> st3({ 4,5,2,9,6,8,3,1,7 }); // 初始化列表构造
}
迭代器操作
begin() 返回最小元素的迭代器,end() 指向末尾之后。遍历时需注意顺序。
{
;
begin = st.();
end = st.();
cout << *begin << endl;
cout << *(--end) << endl;
}


