set 和multiset 以后用来做排序很方便啊。 这个就是把元素以排序的状态存放于内部的tree结构。set 不允许元素重复,multiset允许元素重复。写个简单的代码
//stl/ set and multiset //cpp
//
#include <iostream>
#include <set>
using namespace std;
int main()
...{
typedef set<int> IntSet;
IntSet coll;
// 默认从小到到大排列,反方向要像下面用
typedef set<int,greater<int> > IntSet2; //两个 > > 要隔开,不然可能出错
IntSet2 coll2;
typedef multiset<int> IntMultiSet;
IntMultiSet coll3;
typedef multiset<int,greater<int> > IntMultiSet2;
IntMultiSet2 coll4;
for(int i =0; i<20;++i) 
...{
// srand();
int num = rand()%50;
coll.insert(num); // 随机插入数字
coll2.insert(num);
coll3.insert(num);
coll4.insert(num);
}
IntSet::const_iterator pos;
for(pos = coll.begin();pos!=coll.end();++pos)
...{
cout <<*pos<<' ';
}
cout <<endl;
IntSet2::const_iterator pos2;
for(pos2 = coll2.begin(); pos2 !=coll2.end();++pos2)
...{
cout <<*pos2 <<' ';
}
cout <<endl;
IntMultiSet::const_iterator pos3;
for(pos3 = coll3.begin(); pos3 !=coll3.end(); ++pos3)
...{
cout <<*pos3 <<' ';
}
cout <<endl;
IntMultiSet2::const_iterator pos4;
for(pos4 = coll4.begin(); pos4 !=coll4.end(); ++pos4)
...{
cout <<*pos4<<' ';
}
cout <<endl;
return 1;
}
639

被折叠的 条评论
为什么被折叠?



