1

次のように、ベクトルのベクトルがあります。

vector< vector<int> > intervals;

基本的に、STL の sort() を使用してベクトルをソートする必要がありますが、intervals[i][0] の「intervals」をソートする必要があります。したがって、各オブジェクトの [0] 要素でベクター オブジェクトを並べ替えます。

これどうやってするの?前もって感謝します。

4

1 に答える 1

7

std::sortは object のコンパレータ関数を 3 番目の引数として受け取るため、2 つのベクトルを取り、それらの最初の要素を比較する未満演算子を定義できます。

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 に答える