这是我的交换功能:
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/