特点是 ①元素各不相同 ②元素会自动从小到大排序 ③初始时无法指定其大小 需提供头文件 #include <set> 创建 注意初始时不能指定其大小。(不能说集合里有5个元素,但是没有值) 1set<int> s; 插入 使用.insert(值)方法。 【insert:插入】 1s.insert(2);2s.insert(1);3s.insert(3); 遍历 使用迭代器。
Set(集合)属于关联式容器,也是STL中最实用的容器,关联式容器依据特定的排序准则,自动为其元素排序。Set集合的底层使用一颗红黑树(可能读者对此不太了解,等但学到树论与图论的章节的时候就会明白原因),其属于一种非线性的数据结构,每一次插入数据都会自动进行排序,注意,不是需要排序时再排序,而是每一次插入数据的时候...
set1.insert(3); PRINT_ELEMENTS(set1,"set1:"); if(set1.value_comp() == set2.value_comp())//value_comp Returns the comparison object associated with the container cout << "set1 and set2 have the same sorting criterion" << endl; else cout << "set1 and set2 have the different ...
set1.insert(3); PRINT_ELEMENTS(set1,"set1:"); if(set1.value_comp() == set2.value_comp())//value_comp Returns the comparison object associated with the container cout <<"set1 and set2 have the same sorting criterion"<< endl; else cout <<"set1 and set2 have the different sortin...
insert():插入元素。 erase():擦除元素。 push_back():将元素添加到容器末尾。 pop_back():移除末尾元素。 push_front():插入元素到容器起始位置。 pop_front():移除首元素。 at():所需元素值的引用。 1.4 set(集合)集合基于红黑树实现,有自动排序的功能,并且不能存放重复的元素。
(2)关联式容器(Associated containers),元素位置取决于特定的排序准则,和插入顺序无关,set、multiset、map、multimap等。 Set/Multiset:内部的元素依据其值自动排序,Set内的相同数值的元素只能出现一次,Multisets内可包含多个数值相同的元素,内部由二叉树实现,便于查找; ...
multiset可以自定义排序规则: 「set」 set和multiset的区别在于容器里不能有重复元素 然后引出pair,用此类型的变量判断是否insert成功。 「pair」 「multimap」 multimap容器里的元素,都是pair形式的 multimap<T1,T2> mp; multimap中的元素按照first排序,并可以按first进行查找。
2、set中数据的插入 与map不同,set中数据只能通过insert()函数进行插入。 例如: 代码语言:javascript 复制 #include<stdio.h>#include<vector>#include<set>using namespace std;intmain(){vector<int>v;for(int i=0;i<10;i++){v.push_back(i);v.push_back(i);}set<int>s;s.insert(v.begin(),...
set<int>s;//后面不能带任何参数,因为集合中元素不能重复,且不能为空 插入: s.insert(1); 迭代器: for(auto p = s.begin();p!=s.end();p++){ cout<<*p<<" "; } //这里的s.end()是在最后一个元素的下一个位置 寻找元素: s.find(2);//从0开始找这个元素,若没有找到则返回s.end();...