关联式容器

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");
}  

猜你喜欢

转载自blog.csdn.net/zhizhengguan/article/details/81366728