在说C++模板的方法前,我们先想想C语言里面是怎么做交换的。 举个例子,要将两个int数值交换,是不是想到下面的代码: 如果要求不用临时变量,可考虑异或的方式。 整型数比较容易理解,如果是字符串呢?字符串交换不能直接使用上面类似的方法赋值,想想原因是啥? 当然如果还可以用指针的指针。 上面的方法都是按特定的类型做的处理,有没更通用的写法? 我们来看看C++ 怎么处理交换: 是不是和int的很像? 我们再来看看标准库里面swap的算法是怎么实现的: template 是c++里面很重要的概念,利用模板可以实现很多通用的算法。上面的std::swap要求T类实现拷贝构造函数,并且和上面