C++ 中swap函式
阿新 • • 發佈:2018-12-11
最近練習寫函式模板,自定義了一個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; }
執行結果