我想使用模板交换两个数字,但为什么交换(x,y);把错误称为模棱两可的电话。
#include <iostream>
using namespace std;
template <class T>
void swap(T &a, T &b) {
T temp = a;
a = b;
b = temp;
}
int main () {
int x = 14;
int y = 7;
swap(x, y);
cout << x << y;
}
答案 0 :(得分:6)
#include <iostream>
using namespace std;
iostream
必须包含algorithm
,并且由于您决定在文件中包含整个std
命名空间,因此您与std::swap
发生冲突。删除using namespace std;
编辑:正如@chris在评论中指出的那样,std::swap
已在C ++ 11中移至<utility>
。