C++ STL multimap与unordered_map

一 multimap用法说明  

       multimap, 允许元素重复的关联容器,它的内部实现也是用的红黑树,例如下面的代码

#include 
#include 
#include 

using namespace std;

int main()
{
	multimap mmap = { {3, "鲁班"}, {2, "后裔"} };
	mmap.insert(make_pair(1, "伽罗"));
	mmap.insert(pair(4, "阿离"));
	mmap.insert(make_pair(4, "马克波罗"));

	for (auto it : mmap)
	{
		cout << it.first << " " << it.second << endl;
	}

	return 0;
}

       运行结果

       multimap使用和map一样 都是要包含头文件#include

       注意不支持[]操作, 这种是不行的,因为multimap也是有序的,但可以重复,用[]不知道取得是哪个值,需要用迭代器。

       其它操作和map基本相同

 

二 unordered_map使用说明

     unordered_map,无序(不排序),key不可重复,它的内部实现是哈希表。例如下面的代码

#include 
#include 
#include 

using namespace std;


int main()
{
	unordered_map umap;
	umap.insert(make_pair(1, "妲己"));
	umap.insert(make_pair(3, "甄姬"));
	umap.insert(make_pair(2, "安其拉"));
	umap.insert(make_pair(4, "王昭君"));
	umap.insert(make_pair(5, "米莱迪"));
	umap.insert(make_pair(5, "貂蝉"));
	umap[5] = "武则天";

	for (auto it : umap)
	{
		cout << it.first << " " << it.second << endl;
	}

	return 0;
}

     运行结果

     根据以上代码可以知道,unordered_map支持 [], 插入元素时会被覆盖。

     注意:unordered_map不支持反向遍历。 

你可能感兴趣的:(#,STL)