STL:set用法总结

Posted woniu201

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了STL:set用法总结相关的知识,希望对你有一定的参考价值。

一:介绍

set是STL的关联式容器,以红黑树(Red-Black Tree)作为底层数据结构。自动去重,保证每个元素唯一,并对数据进行排序。

命名空间为std,所属头文件为<set>

二:常用操作

容量:
a.set中实际数据的数据:set.size()
b.set中最大数据的数量:set.max_size()
c.判断容器是否为空:set.empty()

修改:
a.插入数据:set.insert()
b.清空set元素:set.clear()
c.删除指定元素:set.erase(it)

迭代器:
a.set开始指针:set.begin()
b.set尾部指针:set.end() 注:最后一个元素的下一个位置,类似为NULL,不是容器的最后一个元素

三:存储

 1     //简单存储
 2     set<int> iSet;
 3     for (int i=0; i<10; i++)
 4     {
 5         iSet.insert(rand()%100);
 6     }
 7 
 8     //存储结构体
 9     struct Student1
10     {
11         char name[32];
12         int     age;
13         bool operator<(const Student1& tmp) const{
14             if(this->age < tmp.age)
15                 return true;   
16             return false;
17         }
18     };
19 
20     Student1 stu1;
21     strcpy(stu1.name, "woniu201");
22     stu1.age = 32;
23     Student1 stu2;
24     strcpy(stu2.name, "beijing");
25     stu2.age = 30;
26 
27      set<Student1> sSet;
28      sSet.insert(stu1);
29      sSet.insert(stu2);

四:遍历

1     for (set<int>::iterator it = iSet.begin(); it != iSet.end(); it++)
2     {
3         cout << *it << endl;
4     }

五:查找

1     set<int>::iterator it = find(iSet.begin(), iSet.end(), 24);
2     if (it != iSet.end())
3     {
4         cout << "found" << endl;
5     }
6     else
7     {
8         cout << "not found" << endl;
9     }

六:删除

1     for (set<int>::iterator it = iSet.begin(); it != iSet.end(); it++)
2     {
3         if (*it == 24)
4         {
5             it = iSet.erase(it);
6             it--;
7         }
8     }

 









以上是关于STL:set用法总结的主要内容,如果未能解决你的问题,请参考以下文章

[C++STL]set容器用法介绍

STL set 用法

C++ STL, set用法。

STL--set使用用法

STL set简单用法

STL set 详细用法