我的意思是这种情况:
for (auto iter = myMmap.equal_range(find_key).first;
iter != myMmap.equal_range(find_key).second;
++iter)
{
//code
}
如何从我在此集合中的第一项或最后一项中的迭代器(即不使用计数器)派生。
像这样?
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 {}
}
我相信混合iter
并且cit
是错字。
您检查迭代器是组中的第一个还是最后一个元素,就像您在 for_cycle 中所做的一样 - 第一个元素是equal_range(find_key).first
,最后一个元素之后的一个元素是equal_range(find_key).second
。