这是我的交换功能:

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

这是我的函数(在旁注中 v 存储字符串)调用交换值,但是每当我尝试使用 vector 中的值调用时,我都会收到错误消息。我不确定我做错了什么。
swap(v[position], v[nextposition]); //creates errors

最佳答案

我认为您正在寻找的是 iter_swap ,您也可以在 <algorithm> 中找到它。
您需要做的就是传递两个迭代器,每个迭代器都指向您要交换的元素之一。
由于您拥有两个元素的位置,因此您可以执行以下操作:

// 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

关于C++ 试图交换 vector 中的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6224830/

10-15 04:39