c++ set使用(增删查遍历)

来源:互联网 发布:网络彩票开售时间 编辑:程序博客网 时间:2024/06/07 23:28

本文介绍set的增删查遍历实现,使用例子如下
下面程序统计出现的数字有哪些

#include <iostream>#include<set>using namespace std;int main(){    int numList[6]={1,2,2,3,3,3};    //1.set add    set<int> numSet;    for(int i=0;i<6;i++)    {        //2.1insert into set        numSet.insert(numList[i]);    }    //2.travese set    for(set<int>::iterator it=numSet.begin() ;it!=numSet.end();it++)    {        cout<<*it<<" occurs "<<endl;    }    //3.set find useage    int findNum=1;    if(numSet.find(findNum)!=numSet.end())    {        cout<<"find num "<<findNum<<" in set"<<endl;    }else{        cout<<"do not find num in set"<<findNum<<endl;    }    //set delete useage    int eraseReturn=numSet.erase(1);    if(1==eraseReturn)    {          cout<<"erase num 1 success"<<endl;    }else{        cout<<"erase failed,erase num not in set"<<endl;    }    return 0;}

1.增加

调用insert成员函数,注意,set包含不重复的关键字,因此插入一个已经存在的元素对容器没有影响.

 numSet.insert(numList[i]);

2.遍历

使用set<int>::iterator it;迭代器遍历

3.查找

使用find函数查找
使用如

if(numSet.find(findNum)!=numSet.end())

find 返回一个迭代器,如果查找失败会返回end()元素,否则成功

4.删除

erase的返回值总是0和1,若返回0,表示删除的元素不在set中,如

 int eraseReturn=numSet.erase(1);