在multimap中迭代一个组如何知道我是在第一个还是最后一个元素?

rsk*_*k82 2 c++ iteration multimap c++11

我的意思是这种情况:

for (auto iter = myMmap.equal_range(find_key).first;
  iter != myMmap.equal_range(find_key).second;
  ++iter)
{
  //code
}
Run Code Online (Sandbox Code Playgroud)

如何从迭代器(即不使用计数器)派生出我在该集合中的第一个或最后一个项目.

eca*_*mur 5

像这样?

auto range = myMmap.equal_range(find_key);

for (auto it = range.first; it != range.second; ++it) {
    if (it == range.first) { // first

    } else if (std::next(it) == range.second) { // last

    } else {}
}
Run Code Online (Sandbox Code Playgroud)