我对 C++ 很陌生,不了解 STL 库的所有概念,所以请耐心等待。我编写了以下代码片段(粘贴在下面)来查找排序向量中的 lower_bound。尽管此代码在发布模式下工作正常,但它在调试模式下断言(VStudio-8)。我相信这是因为less_equal<int>
不是严格的弱排序。
来自以下线程:stl ordering - strict weak ordering
我确实理解 STL 强加了弱排序,但我仍然不太清楚为什么?
在下面的情况下,我需要使用less_equal<int>
,因为我试图在排序向量中找到最接近给定值的元素。
下面的代码片段是否有效?另外,有没有更好的方法呢?此外,任何关于什么是弱和偏序的见解/参考都会有所帮助。
int main() {
vector<int> dest;
for(int i = 0;i <6;i++) {
dest.push_back(i);
}
vector<int>::iterator i =
std::lower_bound(dest.begin(),dest.end(),4,less_equal< int >());
return 1;
}