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的最大容量

posted @ 2013-10-25 16:05  紫忆  阅读(399)  评论(0编辑  收藏  举报