#include <set>
#include <string>
#include<iostream>
using namespace std;
int main()
{
set<string> db;
db.insert(string("abs"));
db.insert(string("abd"));
db.insert(string("abe"));
db.insert(string("abc"));
db.insert(string("aba"));
//删除。
db.erase(string("abe"));
//db.erase("abe");
//迭代器输出
set<string>::iterator ite = db.begin();
for ( ite; ite !=db.end(); ite++)
{
cout << *ite<<endl;
}
system("pause");
return 0;
}
set:
1、关键字保存:通过实际值来排序,通过实际值来查找;
特点:a、高效访问,对比map:
1、数据结构是红黑树;
2、map是分键值对,set键值即实际值,实际值即键值。
b、键值不能重复。
2、红黑树(平衡 排序二叉树):x=log2^N:
a、N是数据总量。
b、x是查找次数,2^x>=N。
3、键值不能改,实际值可以改。但是一般修改实际值就是修改键值会使整个结构会发生改变,一般不提倡修改。
4、没有容量;得到元素的个数,size(),尺寸;得到一个元素是否存在,或者判断一个元素是否存在, count(const key&_key);判断是否是空empty(),空返回1,非空返回0;迭代器,可以循环、也可以自加++,但不可以+2。
这篇博客介绍了C++中集合(set)的使用,特别是基于红黑树的数据结构。示例代码展示了如何插入元素、删除元素以及遍历集合,并解释了红黑树的特性,如高效访问和平衡排序。此外,还讨论了集合中键值不可变以及相关操作的影响。
3667

被折叠的 条评论
为什么被折叠?



