C++ unordered_map 的基本使用

Posted bcbobo21cn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C++ unordered_map 的基本使用相关的知识,希望对你有一定的参考价值。

unordered_map
    关联性:std::unorederd_map 是一个关联容器,其中的元素根据键来引用,而不是根据索引来引用。
    无序性:在内部,std::unordered_map中的元素不会根据其键值或映射值按任何特定顺序排序,而是根据其哈希值组织到桶中,以允许通过键值直接快速访问各个元素(常量的平均时间复杂度)。
    唯一性:std::unorederd_map中的元素的键是唯一的。

// assignment operator with unordered_map
#include <iostream>
#include <string>
#include <unordered_map>

typedef std::unordered_map<std::string, std::string> stringmap;

stringmap merge(stringmap a, stringmap b) 
	stringmap temp(a);
	temp.insert(b.begin(), b.end());
	return temp;


int main() 
	//stringmap first, second, third;//此处连续定义三个会报错。
	stringmap  first =   "A1", "Apple" ,  "M1", "Microsoft"  ;  // init list
	stringmap second =   "G1", "Google" ,  "O1", "Oracle"  ;   // init list
	stringmap third = merge(first, second);                       // move
	first = third;                                     // copy

	std::cout << "first contains:"<<std::endl;
	for (auto& elem : first)
		std::cout << elem.first << ":" << elem.second<<std::endl;
	std::cout << std::endl;
	system("pause");
	return 0;

在VS2012中构建,

    将出现 不能用初始值设定项列表初始化非聚合 错误; 

用DevCpp构建,先设置支持C++11;

 运行如下;

根据资料VS2012不完全支持C++11; 

以上是关于C++ unordered_map 的基本使用的主要内容,如果未能解决你的问题,请参考以下文章

C++ STL unordered_map详解

C++ unordered_map使用自定义类型作为键值

C++ std::unordered_map怎么用

不支持 NodeJS 插件 Unordered_map?

如何在 C++ 中为用户定义的结构初始化最小值?

使用函数初始化 C++ 结构