1

我有一个向量的向量,如下所示:

vector< vector<int> > intervals;

基本上,我需要使用 STL 的 sort () 对向量进行排序,但我需要对间隔 [i] [0] 进行排序。因此,按每个对象的 [0] 元素对向量对象进行排序。

我怎样才能做到这一点?先感谢您。

4

1 回答 1

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);
}
于 2012-04-19T19:47:23.947 回答