C++ 检索地图键(斯坦福C+;+;库)

C++ 检索地图键(斯坦福C+;+;库),c++,map,C++,Map,我正在使用斯坦福图书馆的地图类型。我可以通过传递.get(key)很容易地获得值,但我想到,如果我也能检索到它的键,这将是有益的。有没有办法做到这一点 根据它的文档:它没有这样的功能。但是还有其他的方法吗 可能使用迭代器:Map::iterator?您的Map.h包含注释: Additional Map operations - Iteration using the range-based for statement, standard STL iterators, and the mapp

我正在使用斯坦福图书馆的地图类型。我可以通过传递
.get(key)
很容易地获得值,但我想到,如果我也能检索到它的
键,这将是有益的。有没有办法做到这一点

根据它的文档:它没有这样的功能。但是还有其他的方法吗


可能使用迭代器:
Map::iterator

您的Map.h包含注释:

Additional Map operations
 - Iteration using the range-based for statement, standard STL iterators, and the mapping function mapAll
所以,我想您可以尝试使用迭代器进行迭代:

Map<string, int> :: iterator it;
for(it = m.begin(); it != m.end(); ++it){ // Here m is your Map variable.
       string key = it->first;
       //... do something
}
Map::迭代器;
对于(it=m.begin();it!=m.end();++it){//这里m是映射变量。
string key=it->first;
//…做点什么
}

您的地图。h包含一条注释:

Additional Map operations
 - Iteration using the range-based for statement, standard STL iterators, and the mapping function mapAll
所以,我想您可以尝试使用迭代器进行迭代:

Map<string, int> :: iterator it;
for(it = m.begin(); it != m.end(); ++it){ // Here m is your Map variable.
       string key = it->first;
       //... do something
}
Map::迭代器;
对于(it=m.begin();it!=m.end();++it){//这里m是映射变量。
string key=it->first;
//…做点什么
}
是的,有。尝试:

作为在映射上迭代时的一种简化,foreach宏迭代键,而不是键/值对

是的,有。尝试:

作为在映射上迭代时的一种简化,foreach宏迭代键,而不是键/值对


检索全部或按值检索一个键?所有这些,许多值都是相同的。或者,假设我正在遍历它,并使用迭代器获取值。同时,我希望检索该值的键并将其存储在其他位置(如果有意义的话)。检索所有值或按值检索键?所有值,许多值都是相同的。或者,假设我正在遍历它,并使用迭代器获取值。同时,如果有意义的话,我想检索该值的键并将其存储在其他地方。太好了!那会很有帮助的很好!那个会很有帮助的