void swap(int &a, int &b) { int temp = a; a = b; b = temp; }而在对一个数组字符串对象进行排序的时候,会需要以下函数:
void swap(string &a, string &b) { string temp = a; a = b; b = temp; }因为这两个函数中代码的唯一区别就是被交换的变量的类型,所以这两个函数的逻辑与所有其他类似函数的逻辑都可以使用同一个模板函数来表示:
template<class T> void swap(T &a, T &b) { T temp = a; a = b; b = temp; }这样的模板函数在标准 C++ 编译器附带的库中可用。该函数在
<algorithm>
头文件中声明。// This program demonstrates the use of the swap function template. #include <iostream> #include <string> #include <algorithm> // Needed for swap using namespace std; int main () { // Get and swap two chars char firstChar, secondChar; cout << "Enter two characters: "; cin >> firstChar >> secondChar; swap(firstChar, secondChar); cout << firstChar << " " << secondChar << endl; // Get and swap two ints int firstInt, secondInt; cout << "Enter two integers: "; cin >> firstInt >> secondInt; swap(firstInt, secondInt); cout << firstInt << " " << secondInt << endl; // Get and swap two strings cout << "Enter two strings: "; string firstString, secondString; cin >> firstString >> secondString; swap(firstString, secondString); cout << firstString << " " << secondString << endl; return 0; }程序输出结果:
Enter two characters: a b
b a
Enter two integers: 12 45
45 12
Enter two strings: http://task.lmcjl.com cyuyan
cyuyan http://task.lmcjl.com
本文链接:http://task.lmcjl.com/news/12780.html