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]);
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]);
はい、それはうまくいくでしょう。
std::swap
独自の関数よりも使用する方がよいでしょう。
std::vector::operator[]
実際に何もできなければ、参照を返す意味はありません。あなたのコードは完全に問題ありません。
シーケンスコンテナの場合は問題ありません。一方、連想コンテナには、特定の値を持つ要素がどこに属するかという独自の概念があるため、それらの要素の値を台無しにしないでください。