我有一个向量向量,如下所示:
vector< vector<int> > intervals;
基本上,我需要使用STL的sort()对矢量进行排序,但我需要为interval [i] [0]排序'interval'。因此,通过每个对象的[0]元素对矢量对象进行排序。
我该怎么做?提前谢谢。
答案 0 :(得分:7)
std::sort将object的比较器函数作为第三个参数,因此您可以定义一个带有两个向量并比较它们的第一个元素的小于运算符。
bool foo(const std::vector<int>& a, const std::vector<int>& b) {
// in real life you may want to check vectors aren't empty.
// in real life you wouldn't call this foo either.
return a[0]<b[0];
}
int main() {
std::vector<std::vector<int>> v = ...;
std::sort(v.begin(), v.end(), foo);
}