リストやベクターなどの C++ コンテナーで高速なスワップ メソッドがどのようなものか疑問に思っています。組み込みのスワップ関数がまだ見つからないためです。参考までに、リスト全体ではなくオブジェクトをスワップしたいと考えています。
たとえば、int シーケンス 3 2 4 5 があり、それらがリスト コンテナー (stl) に格納されているとします。2 と 4 を入れ替えたいとします。
list<int> numbers;
numbers.push_back(3);
numbers.push_back(2);
numbers.push_back(4);
numbers.push_back(5);
list<int>::iterator item;
item=numbers.begin();
advance(item,2);
int key = *item;
advance(item,-1);
numbers.insert(item,key);
advance(item,1);
numbers.erase(item);
簡単に言えば、私がここで行っているのは「コピー、挿入、および削除」です。これを行う理由は、要素の挿入と削除にはリスト コンテナーが非常に効率的であると聞いたからです。また、ポインタ関連の一定時間スワップ法もあると聞いたので、ご存知の方はいらっしゃいますか?</p>
助けてくれてありがとう。