c++ - 如何在 C++ 中对向量的第二个元素执行 lower_bound 操作?
问题描述
可以将所有元素复制v[i].second
到一个新向量,然后对lower_bound
新向量进行操作,因为我们正在搜索的特定值的位置在两个向量中是相同的,所以这样做是合理的。但是如果向量有很多元素,那么复制的成本就会很高。
所以,如果可能的话,我想知道lower_bound
在一种容器上执行操作的语法vector<pair<int,int>>
(特别是只在向量的第二个元素上)。
解决方案
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;
});
这假设向量按 排序element.second
。
推荐阅读
- swift - 如何改变从其他视图传递的变量
- encryption - PGP加密说明
- python - ModuleNotFoundError:使用自然语言时没有名为“google”的模块
- parsing - 使用 Pest.rs,有没有办法将评论存储为令牌?
- linux - 构建 rpm - glob 找不到文件:
- amazon-web-services - Boto3:调用 client.associate_iam_instance_profile 时 IAM 实例配置文件 ARN 无效
- vue.js - 历史模式下的 Vue 3 路由器重新加载页面
- amazon-sns - 以纯文本形式订阅 AWS SNS email-json
- php - 尝试使用 Eloquent、Slim3 框架创建搜索系统。和阿贾克斯
- bash - 试图通过 bash 终端 .bash 的 gulpfile:意外标记 `(' 附近的语法错误