Wondeirng为什么下面的代码返回1
?我从不将1
插入multiset
容器中。
#include <iostream>
#include <set>
int main ()
{
std::multiset<int> mymultiset;
std::multiset<int>::iterator itlow;
mymultiset.insert(-3);
itlow = mymultiset.lower_bound (3);
std::cout << *itlow << endl; // output 1
return 0;
}
最佳答案
mymultiset.lower_bound(3)
返回3
可以到达的容器中的最低位置,该位置在容器的末尾。因此itlow
等于mymultiset.end()
,并且不可取消引用。 std::cout << *itlow
具有未定义的行为。
关于c++ - C++多重集lower_bound的意外输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46144621/