要对以逆序对元素类型为pair<int, string>的std::vector进行排序,可以使用std::sort函数,并自定义一个比较函数来指定排序顺序。
下面是一个示例代码:
#include <iostream>
#include <vector>
#include <algorithm>
bool compare(const std::pair<int, std::string>& a, const std::pair<int, std::string>& b) {
return a.first > b.first;
}
int main() {
std::vector<std::pair<int, std::string>> vec = {{3, "C"}, {1, "A"}, {2, "B"}};
std::sort(vec.begin(), vec.end(), compare);
for (const auto& pair : vec) {
std::cout << pair.first << " " << pair.second << std::endl;
}
return 0;
}
在上面的代码中,我们定义了一个名为compare的比较函数,该函数接受两个参数,即要比较的两个pair<int, string>类型的元素a和b。我们根据pair的first值进行比较,如果a的first值大于b的first值,则返回true,否则返回false。
在main函数中,我们创建了一个包含三个元素的std::vector,然后使用std::sort函数对其进行排序,并传入compare函数作为自定义的比较函数。最后,我们遍历排序后的vector,并输出每个元素的first和second值。
输出结果将是:
3 C
2 B
1 A