私はC++でスーパー新しいですし、私は本当にこれで苦労しています:私はセットの私の第二の成分整理したい:2番目の値「double」にセット<pair <pair <int, int>、double >>>を並べ替える方法はありますか?
set< pair <pair<int, int>, double > > map
int N_t = 10, N_r = 10;
for (unsigned int i_t = 0; i_t < N_t; i_t++)
{
for(unsigned int i_r = 0; i_r < N_r; i_r++)
{
Double_t dR = i_t*i_r ;
map.insert(make_pair(make_pair(i_r, i_t) ,dR));
}
}
をそして私は、第二の成分をorganiceたいです。私はこれを試して、私はそれをする方法を知らない:
sort(map.begin(), map.end(), [](const pair<pair<int,int> &x, double>,const pair<pair<int,int>, double> &y)
{
return x.second < y.second;
});
ありがとう!!
連想コンテナ(セット、マップ、および順序付けられていないカウンターパート)はソートできません。 – NathanOliver
ここをクリックしてください:http://en.cppreference.com/w/cpp/container/setあなたのセットはカスタムコンパレータを持つことができます。これで、あなたのセット内の "順序"と "ユニーク"とみなされるものを補完することができます – Hayt
そして、 'std :: pair'のこの再帰的な使用ではなく、単に'タプル '要素を集約する単純な 'struct'ですか? – WhiZTiM