【发布时间】:2025-11-25 12:40:02
【问题描述】:
我目前正在调试一些代码,但对以下可能的情况感到困惑:
void DoSomething(int cell, const std::multimap<int, const Foo*>& map) {
auto range = map.equal_range(cell);
if (range.first != map.end()) {
int iterated = 0;
for (auto iter = range.first; iter != range.second; ++iter) {
iterated++;
}
assert(iterated > 0);
}
}
根据我对std::multimap 的理解,这个断言在任何情况下都应该通过,但有时它会因 iterated = 0 而失败。
什么情况下可以做到?
【问题讨论】:
标签: multimap