C++ でベクトル内の値を交換しようとする 質問する

C++ でベクトル内の値を交換しようとする 質問する

これは私のスワップ関数です:

template <typename t>
void swap (t& x, t& y)
{
    t temp = x;
    x = y;
    y = temp;
    return;
}

これは私の関数です (ちなみに、v は文字列を格納します)。値を交換するために呼び出しますが、ベクトル内の値を使用して呼び出しを試みると、常にエラーが発生します。何が間違っているのかわかりません。

swap(v[position], v[nextposition]); //creates errors

ベストアンサー1

あなたが探しているのはiter_swapこれは にも記載されています<algorithm>
必要なのは、交換する要素の 1 つを指す 2 つの反復子を渡すだけです。2
つの要素の位置がわかっているので、次のように実行できます。

// assuming your vector is called v
iter_swap(v.begin() + position, v.begin() + next_position);
// position, next_position are the indices of the elements you want to swap

おすすめ記事