2025年4月10日 星期四 乙巳(蛇)年 正月十一 设为首页 加入收藏
rss
您当前的位置:首页 > 计算机 > 编程开发 > VC/VC++

C++ swap函数模板及其用法

时间:03-07来源:作者:点击数:51

在许多应用程序中,都有交换相同类型的两个变量内容的需要。例如,在对整数数组进行排序时,将需要一个函数来交换两个变量的值,如下所示:

  • 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://www.cdsy.xyz cyuyan
cyuyan http://www.cdsy.xyz
方便获取更多学习、工作、生活信息请关注本站微信公众号城东书院 微信服务号城东书院 微信订阅号
推荐内容
相关内容
栏目更新
栏目热门