Standard Template Library (STL) map 与 Python dict
1. 关联容器 / 关系容器 (associative containers)
关联容器 (例如 map<K, T>
) 最重要的特性是无须搜索就可以检索特定对象。关联容器内 T
类型对象的位置由与对象一起提供的类型为 K
的键确定,因此只要提供适当的键,就可以快速地检索任何对象。
对于 set<T>
和 multiset<T>
容器,对象作为它们自己的键。我们可能会疑惑该容器的用途,因为在检索对象前必须有可用的对象。集合容器和多重集合容器主要不是为了存储对象用于以后检索,而是为了创建对象的一个聚集,以便可以查看给定对象是否已经是成员。
集合容器和多重集合容器很少使用,它们的操作与映射容器和多重映射容器非常类似。
当创建 map<K, T>
容器时,K
是键的类型,用于存储 T
类型的关联对象。键/对象对会存储为 pair<K, T>
类型的对象,pair<K, T>
在 utility
头文件中定义。utility
头文件包含在 map
头文件中,所以其类型定义自动可用。下面是创建映射的一个示例:
std::map<Person, std::string> phonebook;
此代码定义了一个空映射容器,用来存储键/对象对条目,其中键的类型是 Person
,对象的类型是 string
。
2. Python dict (字典)
References
Ivor Horton’s Beginning Visual C++ 2013
http://www.wrox.com/WileyCDA/WroxTitle/productCd-1118845714.html