std::vector<std::pair<std::string,std::string>> res; 想要对这个vector根据pair的first关键词(类型为std::string)进行排序,我应该怎么书写C++代码
时间: 2023-11-24 19:06:26 浏览: 127
您可以使用lambda表达式作为std::sort()函数的第三个参数来对vector进行排序。具体代码如下:
```c++
#include <vector>
#include <algorithm>
bool cmp(const std::pair<std::string, std::string>& a, const std::pair<std::string, std::string>& b) {
return a.first < b.first;
}
int main() {
std::vector<std::pair<std::string, std::string>> res;
// 添加元素到res中
std::sort(res.begin(), res.end(), [](const std::pair<std::string, std::string>& a, const std::pair<std::string, std::string>& b) {
return a.first < b.first;
});
return 0;
}
```
在上面的代码中,我们定义了一个名为cmp的函数,用于比较两个pair的first关键词的大小。然后,我们在std::sort()函数中使用了一个lambda表达式,该表达式接受两个参数,即要比较的两个pair,然后返回一个bool值,表示它们的顺序。最后,我们将这个lambda表达式作为std::sort()函数的第三个参数传递,以便对vector进行排序。
阅读全文