Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/142.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在排序向量中找到下界 我对C++很陌生,不理解STL库的所有概念,所以请耐心等待。 我编写了以下代码片段(粘贴在下面)来查找排序向量中的下界。 尽管这段代码在发布模式下运行良好,但它在调试模式(VStudio-8)下断言。 我认为这是因为less_equal不是严格的弱序_C++_Lower Bound - Fatal编程技术网

如何在排序向量中找到下界 我对C++很陌生,不理解STL库的所有概念,所以请耐心等待。 我编写了以下代码片段(粘贴在下面)来查找排序向量中的下界。 尽管这段代码在发布模式下运行良好,但它在调试模式(VStudio-8)下断言。 我认为这是因为less_equal不是严格的弱序

如何在排序向量中找到下界 我对C++很陌生,不理解STL库的所有概念,所以请耐心等待。 我编写了以下代码片段(粘贴在下面)来查找排序向量中的下界。 尽管这段代码在发布模式下运行良好,但它在调试模式(VStudio-8)下断言。 我认为这是因为less_equal不是严格的弱序,c++,lower-bound,C++,Lower Bound,从以下线程: 我确实理解STL强加了弱排序,但我仍然不太清楚为什么 在下面的例子中,我需要使用less_equal,因为我试图在排序向量中找到与给定值最近的元素 下面的代码片段是否有效?还有,有更好的方法吗?此外,任何关于弱序和偏序的见解/参考都会有所帮助 int main() { vector<int> dest; for(int i = 0;i <6;i++) { dest.push_back(i); } vector<int>:

从以下线程:

我确实理解STL强加了弱排序,但我仍然不太清楚为什么

在下面的例子中,我需要使用
less_equal
,因为我试图在排序向量中找到与给定值最近的元素

下面的代码片段是否有效?还有,有更好的方法吗?此外,任何关于弱序和偏序的见解/参考都会有所帮助

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;

}
intmain(){
向量dest;
对于(inti=0;i());
返回1;
}

STL使用严格弱排序,因为给定一个SWE(让我们将其表示为
y iff y

至于您试图解决的问题,如果您希望值尽可能接近目标值,您确实不需要在此处使用
less_equal
,而是使用
lower_bound
来获得一个迭代器,该迭代器指向比您要查找的值大的最小元素(使用默认的
谢谢,现在对我来说更有意义了,正如你提到的,我没有理由坚持使用less_equal:)
x <  y      iff     x <  y
x <= y      iff   !(y <  x)
x == y      iff   !(x <  y || y <  x)
x != y      iff    (x <  y || y <  x)
x >= y      iff   !(x <  y)
x >  y      iff     y <  x