检索 std::multimap 的第一个键,c++
Retrieve first key of std::multimap, c++
我只想检索多图的第一个键。我已经通过遍历多图,获取第一个键然后进行中断来实现它。但是应该有更好的方法,但是我没有找到。
int store_key;
std::multimap<int, int> example_map; // then something in it..
for (auto key : example_map)
{
store_key = key;
break;
}
这解决了问题,但我正在寻找另一种解决方案。
您的基于范围的 for 循环或多或少(不完全但足以回答这个问题)相当于:
for (auto it = example_map.begin(); it != example_map.end(); ++it) {
auto key = *it;
store_key = key;
break;
}
我希望现在很清楚,您可以摆脱循环,对于非空地图,它只是:
auto store_key = *example_map.begin();
请注意 store_key
是用词不当,因为它不仅仅是键,您的代码会触发编译器错误。是一个std::pair<const int,int>
。 store_key->first
是关键。
我只想检索多图的第一个键。我已经通过遍历多图,获取第一个键然后进行中断来实现它。但是应该有更好的方法,但是我没有找到。
int store_key;
std::multimap<int, int> example_map; // then something in it..
for (auto key : example_map)
{
store_key = key;
break;
}
这解决了问题,但我正在寻找另一种解决方案。
您的基于范围的 for 循环或多或少(不完全但足以回答这个问题)相当于:
for (auto it = example_map.begin(); it != example_map.end(); ++it) {
auto key = *it;
store_key = key;
break;
}
我希望现在很清楚,您可以摆脱循环,对于非空地图,它只是:
auto store_key = *example_map.begin();
请注意 store_key
是用词不当,因为它不仅仅是键,您的代码会触发编译器错误。是一个std::pair<const int,int>
。 store_key->first
是关键。