1

STLコンテナ内の要素への参照/ポインタを直接操作することは常に安全ですか?

たとえば、

inline void swap(int &a, int &b){int temp=a;a=b;b=temp;}

vector<int> array;

これには{1,2,3,4,5}が含まれます

次の呼び出しを使用するのは良い習慣ですか?

swap(array[1],array[3]);
4

3 に答える 3

3

はい、それはうまくいくでしょう。

std::swap独自の関数よりも使用する方がよいでしょう。

于 2012-11-03T13:06:01.433 に答える
2

std::vector::operator[]実際に何もできなければ、参照を返す意味はありません。あなたのコードは完全に問題ありません。

于 2012-11-03T13:04:54.127 に答える
2

シーケンスコンテナの場合は問題ありません。一方、連想コンテナには、特定の値を持つ要素がどこに属するかという独自の概念があるため、それらの要素の値を台無しにしないでください。

于 2012-11-03T15:29:35.093 に答える