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>


课程官方代码:https://github.com/liuyubobobo/Play-with-Algorithms 

0
4
慕设计0065995
回复
liuyubobobo
谢谢bobo老师~我再看一下我的C++环境配置。
2018-03-16
共4条回复

算法与数据结构(C++版) 面试/评级的算法复习技能包

课程专为:短时间内应对面试、升职测评等艰巨任务打造

11187 学习 · 1614 问题

查看课程