1. 程式人生 > >C++ 中swap函式

C++ 中swap函式

最近練習寫函式模板,自定義了一個swap函式模板來交換變數值,程式碼如下:

#include <iostream>

using namespace std;

template<typename T>
void swap(T& a, T& b)
{
    T t = a;
    a = b;
    b = t;
}

int main()
{
    int a = 2;
    int b = 3;
    swap(a,b);
    cout << "a=" <<a<<" "<<"b="<<b<< endl;
    return 0;
}

但編譯時出現如下錯誤

過載函式swap的呼叫是不明確的,仔細查看了才發現swap是C++ std庫裡的標準函式,因此自定義函式名改成Swap 就沒問題了

int main()
{
    int a = 2;
    int b = 3;
    Swap(a,b);
    cout << "a=" <<a<<" "<<"b="<<b<< endl;
    std::swap(a,b);
    cout << "a=" <<a<<" "<<"b="<<b<< endl;
    return 0;
}

執行結果