set
Set对象的声明构造:
int myints[]= {10,20,30,40,50}; //建立一个数组
A. set<int> c1 //建立一个空集合
B. set<int> c2(3) //建一个含三个默认值是0的元素的集合
C. set<int> c3(5,2) //建一个含五个元素的集合,值都是2
D. set<int> c4(myints,myints+5); //建立一个集合,包含myints的第0到第4的所有元素
E. set<int> c5(c4); //建立一个c4的copy集合
F. set<int> c6(c5.begin(),c5.end()) //c6含c5一个区域的元素[_First,_Last)。
1. begin() //返回第一个元素的迭代器
2. end() //返回最后一个元素的下一位置的指针(set为空时,end()=begin())
3. clear() //清空该集合
4. empty() //判断是否为空,若为空返回1,否则返回0
5. swap() //交换
6. size() //返回储存数据的个数
7. count(node) //搜索元素node,存在返回1,否则返回0
8. erase() //删除数据
set<int> myset;
set<int>::iterator it;
for (int i=1; i<10; i++) myset.insert(i*10); // 10 20 30 40 50 60 70 80 90
it=myset.begin();
it++;
myset.erase (it); //删除it位置的数据
myset.erase (40); //删除40这个数据
9. find(note) //查找元素note,并返回该元素的迭代器;找不到返回.end()
10. insert() //插入数据
**pair<set<int>::iterator,bool> ret;
set<int> myset;
for (int i=1;i<=5;i++)
myset.intsert(i*10); //set:10 20 30 40 50
ret=myset.insert(20);** // 查找20这个数据,有的话就把20的迭 代器返回给ret里的迭代器里,ret的second=false
// 没有的话就插入20这个数据 ret的second=true
11. rbegin()
rend() //反向迭代器
12. swap() //交换两个set的所有元素
int myints[]={12,75,10,32,20,25};
set<int> c1 (myints,myints+3); // 10,12,75
set<int> c2 (myints+3,myints+6); // 20,25,32
c1.swap(c2); //交换c1与c2的元素 此时c1包括 20,25,32 c2包括10,12,75
13. max_size() //返回set的最大容量