1

findと同時にstl:mapから消去しても大丈夫ですか?同時とは、2つのスレッドが同時に両方を試行し、1つは消去を、もう1つはfindを呼び出すことを意味します。

4

2 に答える 2

6

もちろん違います。stl::map自動平衡二分木 (通常は赤黒) に基づいています。erase最終的に重いツリーの再配置を引き起こす可能性があります。

于 2012-08-19T14:08:40.803 に答える
1

const同じオブジェクトでメソッドと非メソッドを同時に呼び出すconstことはできません。また、2つの非constメソッドを同時に呼び出すこともできません。constただし、2つのメソッドを同時に呼び出すことは問題ありません。これは、標準ライブラリだけでなく、すべての*const正しいコードに適用されます。

だから、あなたの場合はいいえ、それは安全ではありません。

*内部的にスレッドセーフでない限り、設計が不十分です。そして、標準ライブラリには何もありません。

于 2012-08-19T14:30:18.653 に答える