2012-04-19 8 views
1

次のように私は、ベクトルのベクトルを持っている:ソートベクトル[I] [0]

vector< vector<int> > intervals; 

は基本的に、私は)(STLのソートを使用して、ベクトルをソートする必要があるが、私はソートする必要がありますinterval [i] [0]の間は 'intervals'です。したがって、各オブジェクトの[0]要素でベクトルオブジェクトをソートします。

どうすればいいですか?前もって感謝します。次の2つのベクトルをとり、それらの最初の要素を比較する小なり演算子を定義できるように

+0

'map >'あなたのキーは 'vector [0]'のところで使うことはできませんか? – EdChum

答えて

7

std::sortは、3番目の引数としてオブジェクトのコンパレータ機能を取ります。

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); 
} 
+1

私は比較関数の名前として 'foo'を使用していないだろうが、そうでなければ、これはそれを行うための方法です。 –

+0

@MarkRansomもどちらも私には当てはまりません!注目される。 – juanchopanza