如何基于第二个字符串对字符串向量的向量进行排序

use*_*764 0 c++ sorting vector

我有一个字符串向量的向量.这些向量中的第二个字符串是我想要排序的.有没有办法使用std :: sort来做到这一点?

从我可以告诉我应该传入一个struct/class中的函数,但我不确定它应该是什么样子.

tim*_*rau 5

定制比较函数,以便比较字符串向量中的第二个元素.

#include <algorithm>
#include <vector>
#include <string>
using std::vector;
using std::string;
bool cmp(const vector<string> &lhs, const vector<string> &rhs)
{
    return lhs[1] < rhs[1];
}

vector<vector<string> > vecvecstr;
std::sort(vecvecstr.begin(), vecvecstr.end(), cmp);
Run Code Online (Sandbox Code Playgroud)

std::sort()然后cmp()每当需要进行排序比较时调用.

如果std::sort()省略第3个参数,则调用operator<比较,按字典顺序比较矢量.