最通用的模板交換函數模式:創建臨時對象,調用對象的賦值操作符
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; }
無需構造臨時對象,異或。
最通用的模板交換函數模式:創建臨時對象,調用對象的賦值操作符
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刪除。