1、set/multisets
- 内部的元素依据其值自动排序
- set内的相同数值的元素只能出现一次,multisets内可包含多个数值相同的元素
- 内部由二叉树实现,便于查找
#include <iostream>
#include <set>
using namespace std;
void main()
{
set<int>coll;
coll.insert(1); //没有push_back,因为是自动排序的
coll.insert(6);
coll.insert(2);
coll.insert(2);
for (set<int>::const_iterator pos = coll.begin(); pos != coll.end(); ++pos) cout << *pos << ends;
//输出1,2,6.不可以插入相同的元素,相同的元素被去掉了。自动排序
system("pause");
}
2、maps/multimaps
- map的元素是成对的键值/实值,内部的元素依据其值自动排序
- map内的相同数值的元素只能出现一次,multimaps内可以包含多个数值相同的元素
- 内部由二叉树实现,便于查找
#include <iostream>
#include <map>
#include <string>
using namespace std;
void main()
{
multimap<int, string>coll;
//make_pair便捷函数,返回一个pair对象
coll.insert(make_pair(6, "strings"));
coll.insert(make_pair(1, "is"));
coll.insert(make_pair(3, "multimap"));
coll.insert(make_pair(1, "multimap"));
coll.insert(make_pair(1, "multimap"));
for (multimap<int, string>::iterator pos = coll.begin(); pos != coll.end(); pos++) cout << pos->first << ends << pos->second << endl;
//会根据key = 1从小到大排,key可以相同,string可以相同,key&string可以相同
system("pause");
}