c++中集合怎么用
比如说
如何定义一个集合?
集合的元素是否能重复?
如何向集合里加入一个元素?
如何就集合里元素的个数?
等~~~
谢谢
(不要给我大段的程序,把语法说清楚就可以了哦)
再次感谢 展开
包括头文件:
#include <algorithm>
#include <set>
集合函数:
set<int> S1,S2;
S1.insert(1);//插入一个元素1
S2.insert(2);//插入一个元素2
set<int>::iterator site; //迭代器,用法同vector
set<int> Si;
set<int>vis
set_intersection( S.begin(), S.end(), S2.begin(), S2.end(), inserter( Si, Si.begin() ) ); //Si为求交后的集合
set_union(...)//并,语法同上
set_difference(...) //差,语法同上
vis.clear() 移除set容器内所有元素
vis.count(s) 返回vis中值为s的个数
if(vis.count(s)) 判断s是否在集合vis中
vis.find(s) 返回s所在位置,如找不到,返回end(),即为vis,fing(s)==vis.end() vis.insert(s) 把s加入集合
vis.remove(s) 从集合中移除s
输出:
set<int>::iterator ii;
for(ii=si.begin();ii!=si.end();ii++)
cout<<(*ii)<<' ';
*****建议用stl标准模板库中的std::set——元素不允许重复,或者std::multiset——元素允许重复。这两种集合效率非常高。
*****
*****用法举例:
std::set<int> mySet;
int a,b,c,d;
a=1;
a=2;
a=3;
a=4;
mySet.insert(a);
mySet.insert(b);
mySet.insert(c);
mySet.insert(d); //erase()、find()、size()对应删除、查找、求元素个数的函数
也许你会问,为什么不直接用数组?std::set相当数组最大的优势是,集合中的元素都是按关键值排序的。std::set遇到关键值重复的,只保存一个值;而std::multiset允许重复元素并列存在。
参考资料: 自己琢磨的。