私がのstd ::マップを持っている場合、同時にエレガントな方法がある:マップ内の要素を変更してその位置を取得する方法は?
- 挿入/そのキー
- が挿入された要素
マップに2ルックアップを行うことを妨げる私が見つけた最良の方法は次のとおりです。
std::map<int, int> myMap;
//do some stuff with the map
std::map<int,int>::iterator it = myMap.insert(std::pair<int, int>(0,0)).first;
it->second = 0; //necessary because insert does not overwrite the values
それは単一の文/行でそれらのものの両方を行うことは可能ですか? おかげ
注意しかし、むしろ 'pair'です。 –
挿入したり編集したりします。どちらをお望みですか?明らかに、挿入用に1本のライナーがありますので、どういう疑問がありますか? –
私はあなたが最も効率的な方法を見つけたと信じています。見た目が気に入らなければ、2つのステップを組み合わせた 'replace'関数を実装してください。でも、それはあなたの例の観点から実装されます。 – Chad