以下是一个示例代码,演示如何按照pair的第一个元素排序的向量,并根据pair的第一个元素搜索并更新第二个元素的值。
#include
#include
#include
// 定义pair排序的比较函数
bool compare(const std::pair& a, const std::pair& b) {
return a.first < b.first;
}
int main() {
// 创建一个向量,包含一些pair
std::vector> vec = {{3, 10}, {1, 20}, {2, 30}};
// 按照pair的第一个元素排序向量
std::sort(vec.begin(), vec.end(), compare);
// 输出排序后的向量
std::cout << "排序后的向量:" << std::endl;
for (const auto& pair : vec) {
std::cout << pair.first << " " << pair.second << std::endl;
}
// 搜索并更新第二个元素的值
int target = 2; // 要搜索的值
int newValue = 40; // 更新后的值
for (auto& pair : vec) {
if (pair.first == target) {
pair.second = newValue;
break; // 找到目标值后可以停止搜索
}
}
// 输出更新后的向量
std::cout << "更新后的向量:" << std::endl;
for (const auto& pair : vec) {
std::cout << pair.first << " " << pair.second << std::endl;
}
return 0;
}
上述代码首先定义了一个compare
函数,用于定义pair排序的比较规则。然后创建了一个包含一些pair的向量vec
。使用std::sort
函数对向量进行排序,排序规则为按照pair的第一个元素升序。然后通过遍历向量,找到目标值并更新第二个元素的值。最后输出更新后的向量。
上一篇:按照排名获取每组的前两条记录