检索STL映射键

时间:2010-11-12 20:06:14

标签: c++ stl

是否有一种方法(除了存储键作为值的一部分并迭代地图)从STL映射中检索键,multimap(hash_map)和Perl键(%hash)?

3 个答案:

答案 0 :(得分:14)

for (std::map<key, value>::iterator iter = m.begin(); iter != m.end(); ++iter)
    iter->first; // this is the key

答案 1 :(得分:0)

如果您经常需要获取这些密钥(例如在大循环中),那么您可能对使用boost::bimap感兴趣。否则你可以使用正确的Nikola解决方案。

有时我在向地图添加元素时将密钥副本放在另一个容器中。它需要确保同步两个容器,但如果它足够孤立(在一个类中),那么它很容易设置。

答案 2 :(得分:0)

您可以使用for循环。

for (const auto & keyVal : myMap)
    keyVal.first;