C++ set集合容器用法解析

1.简介

set是C++STL库中的一个容器,他十分的便利,所有的元素插入时都会被自动排序,并且容器内保证元素不重复,就想高一数学中讲的集合具有互异性一样,(好像set本来就叫集合容器 bushi)
2.本质
set属于关联式容器,使用类似书的结构(基于红黑树的平衡二叉检索树)如图:

C++ set集合容器用法解析

3.用处
构造set的主要目的就是为了快速检索和去重(检索的时间复杂度为O(logN));
4.set容器的使用
主要的函数如下:
insert() set容器唯一的插入数据的方式;
用法:

1 set<int> s;
2 s.insert(1); 

size() 判断容器中的元素数目;
用法:

1 set<int> s;
2 for (int i=1;i<3;i++)
3     s.insert(i);
4 s.size(); 

empty() 判断容器是否为空;
用法:

1 set<int> s;
2 if(s.empty()){
3     break4 { 

erase(pos) 删除迭代器所指的元素,并返回下一个元素的迭代器;
用法:

1 set<int> s;
2 s.erase(s.begin()); 

find(key) 查找key这一元素书否存在,若存在,则返回该贱键的元素的迭代器,否则,则返回set.end();
用法:

1 set<int> s;
2 for (int i=1;i5;i++){
3     s.insert(i);
4 }
5 set<int>::iterator ii;
6 ii = s.find(2);
7 if (ii != s.end())
8     cout<

count(key) 检索容器中key的元素个数,但刚才都说了元素插入set后会自动去重,所以返回的值只有0或1罢了(

另外,set容器本质是棵二叉树,所以检索的时间复杂度只有O(logN),比STL里的其他容器快好多。
用法:

cout<1)<

5.迭代器
访问set集合容器中的元素,需要通过迭代器进行,他类似于指针,可以通过他来指向set中的某一元素的地址。例如:

set<int>::iterator ii; 

就定义了一个set

Original: https://www.cnblogs.com/reasa/p/16627146.html
Author: reasa
Title: C++ set集合容器用法解析

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/587531/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球