加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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

发布时间:2020-12-16 07:37:04 所属栏目:百科 来源:网络整理
导读:在许多应用程序中,都有交换相同类型的两个变量内容的需要。例如,在对整数数组进行排序时,将需要一个函数来交换两个变量的值,如下所示: void swap(int a,int b){ int temp = a; a = b; b = temp;} 而在对一个数组字符串对象进行排序的时候,会需要以下函
在许多应用程序中,都有交换相同类型的两个变量内容的需要。例如,在对整数数组进行排序时,将需要一个函数来交换两个变量的值,如下所示:
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://c.biancheng.net cyuyan
cyuyan http://c.biancheng.net

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读