标准库为我们定义了一个模板化的swap函数,可以使用std::swap使用。所以这里就会出现重定义,系统无法分辨用哪一个。将您程序里的swap修改为Swap吧。
一楼回答的很正确,在std命名空间里已经有了swap的定义,你这里重新定义了而且参数列表一样,属于重复定义。解决方法:将你的swap改名