を使用しているとき、私は のstd ::マップ
using ReqList=map<const Attrib,vector<REQ>,less<key_comp>>;
// Attribには
、その後のいくつかのフォームから
ReqList l; begin(l[A])=move(l[A].back());
//削除する最初の要素のように削除します値のベクトル
私は、挿入、検索、値を操作し、削除の並べ替え(最初の要素)を行っています..それでは、上記の操作または関数呼び出しはすべて相互交換される必要がありますか?私はミューテックスの下に特定のものだけを置くことができます。 std :: mapはデフォルト同期を提供しますか?
スレッドがマップを共有しているときに読み書き操作を保護する必要があります。 –
正直なところ、この場合、標準的なRed-Blackツリーが下にあるstd :: mapを気にしません。 MT環境では、順序マップが必要な場合は、スキップリストを参照してください。むしろ有名な[論文](http://www.cs.tau.ac.il/~shanir/nir-pubs-web/Papers/OPODIS2006-BA.pdf) いくつかの合理的な実装:https://github.com/khizmax/libcds –