no instance of overloaded function "swap" matches the argument list
来源:2-6 插入排序法的改进
慕设计0065995
2018-03-14
我在#MinGW64#VSCode中会报swap的Error: no instance of overloaded function "swap" matches the argument list -- argument types are: (int, int). 求大神解析~
代码如下:
int *generateNearlyOrderedArray(int n, int swapTimes){
int *arr = new int[n];
for(int i = 0 ; i < n ; i ++ )
arr[i] = i;
srand(time(NULL));
for( int i = 0 ; i < swapTimes ; i ++ ){
int posx = rand()%n;
int posy = rand()%n;
swap( arr[posx] , arr[posy] );
}
return arr;
}
另外在SortTestHelper.h文件中为何有两次#include <string>呢?有什么区别呢?
1回答
-
liuyubobobo
2018-03-14
我不确定你的编译器版本。
首先确认自己有using namespace std; 否则请使用:std::swap(arr[posx] , arr[posy])
如果还不可以,尝试include<algorithm>
如果是C++11或以上版本,尝试include<utility>
042018-03-16
相似问题