更新时间:2015-10-06 20:04:08浏览次数:1+次
采用insert()方法把元素插入集合中,默认情况下,将键值由小到大插入。
#include <iostream>
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main()
{
set<int> str;
//插入了5个元素;但由于8有重复,第二次插入的8并没有执行
str.insert(8); //第一次插入8,可以插入
str.insert(1);
str.insert(12);
str.insert(6);
str.insert(8); //第二次插入8,不会插入
//中序遍历集合中所有的元素
for(set<int>::iterator iter = str.begin(); iter!= str.end();iter++)
cout << *iter << " ";
cout << endl;
return 0;
}
运行结果:#include <iostream>
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main()
{
set<int> str;
//插入了5个元素;但由于8有重复,第二次插入的8并没有执行
str.insert(8); //第一次插入8,可以插入
str.insert(1);
str.insert(12);
str.insert(6);
str.insert(8); //第二次插入8,不会插入
//中序遍历集合中所有的元素
for(set<int>::reverse_iterator iter = str.rbegin(); iter!=str.rend(); iter++)
cout << *iter << " ";
cout << endl;
return 0;
}
运行结果:删除某个键值的元素用erase()方法,清空集合用clear()方法。
#include <iostream>
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
int main()
{
set<int> str;
//插入了5个元素;但由于8有重复,第二次插入的8并没有执行
str.insert(8); //第一次插入8,可以插入
str.insert(1);
str.insert(12);
str.insert(6);
str.insert(8); //第二次插入8,不会插入
set<int>::iterator iter = str.find(6);
if(iter != str.end())
cout << "找到的值为: " << *iter<< endl;
else
cout << "没有找到" << endl;
iter = str.find(20);
if(iter != str.end())
cout << *iter <<endl;
else
cout << "没有找到" << endl;
return 0;
}
运行结果:
#include <iostream>
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
struct myComp
{
bool operator()(int a, int b)
{
return a > b;
}
};
int main()
{
set<int, myComp> str;
//插入了5个元素;但由于8有重复,第二次插入的8并没有执行
str.insert(8); //第一次插入8,可以插入
str.insert(1);
str.insert(12);
str.insert(6);
str.insert(8); //第二次插入8,不会插入
for(set<int, myComp>::iterator iter = str.begin(); iter !=str.end(); iter++)
cout << *iter << " ";
cout << endl;
return 0;
}
运行结果:#include <iostream>
#include <stdio.h>
#include <vector>
#include <set>
using namespace std;
struct Info
{
string name;
float score;
bool operator < (Info a) const
{
//按score由大到小排列。如果要由小到大排列,使用">"号即可。
return a.score < score;
}
};
int main()
{
set<Info> str;
Info info;
info.name = "Jack";
info.score = 80.5;
str.insert(info);
info.name = "Tomi";
info.score = 20.5;
str.insert(info);
info.name = "Nacy";
info.score = 60.5;
str.insert(info);
for(set<Info>::iterator iter = str.begin(); iter != str.end();iter++)
cout << (*iter).name << " : " <<(*iter).score << endl;
return 0;
}
运行结果:
相关资讯