一、简介
- 头文件:#include<set>
- 元素会自动排序
- set: 元素不重复的结合,
- multiset:元素可以重复的集合
二、set类型的构造
set<int> S; //声明一个int类型的集合
set<char> S; //声明一个char类型的集合
multiset<int> S;//声明一个可以存在相同元素的int类型的集合
multiset<string> S; //声明一个可以存在相同元素的string类型的集合
----------------------------------------------------------------------
三、元素的插入
multiset<string> S; //声明一个可以存在相同元素的string类型的集合
S.insert("fuck"); //"fuck"
S.insert("you"); //"fuck","you"
S.insert("hello"); //"fuck","hello","you"
S.insert("hello"); //"fuck","hello","hello","you"
----------------------------------------------------------------------
set<int> S;//声明一个不存在相同元素的int类型的集合
S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4
-------------------------------------------------------------------------
multiset<int> S;//声明一个可以存在相同元素的int类型的集合
S.insert(1); //1
S.insert(2); //1,2
S.insert(3); //1,2,3
S.insert(4); //1,2,3,4
S.insert(4); //1,2,3,4,4
四、元素的删除
set<int> S; //设初始集合{1,2,3,4,5,6,7,8,9,}
S.erase(5) //根据元素内容删除5 {1,2,3,4,6,7,8,9,}
set<int>::iterator ita = s.begin();//声明迭代器
set<int>::iterator ita = s.begin()+3;
S.insert(ita)//删除迭代器指向的元素 {2,3,4,6,7,8,9,}
S.insert(ita,itb)删除区间 [ita,itb)的元素{4,6,7,8,9,}
S.clear() ;//清空
五、元素的查找
set<int> S; //设初始集合{1,2,3,4,5,6,7,8,9,}
set<int>::iterator it;
it=S.find(5);//查找元素第一次出现5的位置,返回迭代器 如果没找到则返回end()
六、其他操作
s.begin() 返回指向第一个元素的迭代器
s.end() 返回指向最后一个元素之后的迭代器,不是最后一个元素
s.count() 返回bool型,有返回1,无返回0
s.empty() 如果集合为空,返回true
s.find() 返回一个指向被查找到元素的迭代器,
s.size() 集合中元素的数目
s.swap() 交换两个集合变量
版权声明:本文为qq_41431457原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。