我习惯用C#或Java编程,所以我在C++中做得很糟糕.我相信这很容易,但我无法做到这一点.请帮我.
我有这个:
void swap(vector * vet, int i, int j)
{
int temp = vet[i];
vet[i] = vet[j];
vet[j] = temp;
}
我用这种方式调用方法:
swap(&vet, j, j - 1);
我想要的是使用指针而不是使用值传递向量.
Obs:代码编译良好,没有"*"和"&".
请不要说我必须至少尝试学习指针,因为我做到了.我只是不能让这个该死的东西工作!
您应该通过引用而不是"通过指针"来获取向量.
void swap(std::vector<int>& vet, std::size_t i, std::size_t j)
{
using std::swap;
swap(vet[i], vet[j]);
}
Run Code Online (Sandbox Code Playgroud)
http://en.cppreference.com/w/cpp/algorithm/swap
注意更惯用:
http://en.cppreference.com/w/cpp/algorithm/iter_swap