检索 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 是关键。