C++中的swap函數


最通用的模板交換函數模式:創建臨時對象,調用對象的賦值操作符

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

需要構建臨時對象,一個拷貝構造,兩次賦值操作。

針對int型優化

void swap(int & __restrict a, int & __restrict b)  
{  
a ^= b;  
b ^= a;  
a ^= b;  
} 

無需構造臨時對象,異或。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM