キーと値の両方がint型のマップが1つあります。マップ内の特定の値を検索し、それらのキーを1つのベクトルで収集する必要があります。 コードのスナップショットは、同じタイプのマップ値を収集する方法
map<int,int>m;
map<int,int>::iterator itr;
vector<int> v;
m.insert(make_pair<int,int>(1,2));
m.insert(make_pair<int,int>(2,2));
m.insert(make_pair<int,int>(3,2));
m.insert(make_pair<int,int>(4,4));
m.insert(make_pair<int,int>(5,5));
のようなもので、現在のコードは次のようである:
for (itr = m.begin(); itr != m.end(); ++itr)
{
if ((*itr).second == 2)
v.push_back((*itr).first)
}
は、我々はそれを最適化したいです。私たちはSTLアルゴリズムをどうすればできるのですか?
はい、OPはキーを値と値としてキーをキーとして使用しようとしているようです。 – Gorpik
一つのシナリオではこれが必要です。それ以外の場合は、キーだけで作業しているマップです。 – CrazyC
次にboost :: bimapを見てみましょう。 – ronag