Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/search/2.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++ 如何在C+中对向量的第二个元素执行下界运算+;?_C++_Search_Vector - Fatal编程技术网

C++ 如何在C+中对向量的第二个元素执行下界运算+;?

C++ 如何在C+中对向量的第二个元素执行下界运算+;?,c++,search,vector,C++,Search,Vector,我们可以复制所有的v[i]。第二个元素到一个新向量,然后对新向量执行下限操作,因为我们正在搜索的特定值在两个向量中的位置相同,所以这样做是合理的。但是,如果向量有许多元素,那么复制将是昂贵的 因此,如果可能的话,我想知道对向量类型的容器执行下限操作的语法(特别是仅对向量的第二个元素) int myValue=42;//要搜索的值。 std::下限(myVector.begin()、myVector.end()、myValue、, [](常量对和a、int b){ 返回a.s=myValue,或者

我们可以复制所有的
v[i]。第二个
元素到一个新向量,然后对新向量执行
下限
操作,因为我们正在搜索的特定值在两个向量中的位置相同,所以这样做是合理的。但是,如果向量有许多元素,那么复制将是昂贵的

因此,如果可能的话,我想知道对
向量
类型的容器执行
下限
操作的语法(特别是仅对向量的第二个元素)

int myValue=42;//要搜索的值。
std::下限(myVector.begin()、myVector.end()、myValue、,
[](常量对和a、int b){
返回a.s

这假设向量是按
元素排序的。第二个

@Evg。现在更正。此下限操作的返回值是多少?我使用了
autoit=下限(…)
。但是我不能取消引用
it
来打印它所指向的值。它指向第一个元素,其第二个组件是>=
myValue
,或者
end()
(如果没有)。你如何尝试打印它,以及当你尝试时会发生什么?如果你能展示一个我的第一个想法是
(*It)。第二个想法是
。它不起作用,并说“错误:调用'(main():)(std::pair&,const int&')不匹配”。对于
std::lower_bound
使用的比较函数,第一个参数是序列的元素,第二个参数是您正在搜索的值。这些可能是相同或不同的类型。对于
std::sort
,传递给比较的两个参数都是序列的元素,自然是相同类型的。
int myValue = 42;  // value to search for.
std::lower_bound(myVector.begin(), myVector.end(), myValue,
  [](const pair<int,int>& a, int b) {
    return a.second < b;
  });