直接交换数据

    xiaoxiao2021-03-25  116

    问题:

             不借助第三个变量,两个变量直接进行数据交换。

    代码:

    template<typename _ty> void swap_ (_ty& a, _ty& b) { // #if 1 a = a + b; b = a - b; a = a - b; #else // a = a ^ b; b = a ^ b; a = a ^ b; #endif } 调用演示:

    int main() { // std::cout << __FILE__ << std::endl; // int i0 = 5, i1 = 6; float f0 = 3.2, f1 = -1.8; // std::cout << "swap before:" << i0 << ", " << i1 << std::endl; swap_<int> (i0, i1); std::cout << "swap after:" << i0 << ", " << i1 << std::endl; // std::cout << "swap before:" << f0 << ", " << f1 << std::endl; swap_<float> (f0, f1); std::cout << "swap after:" << f0 << ", " << f1 << std::endl; return 0; }

    结果:

    d:\mylaf\project\vs2013\project_code\testvirtualinputv2\mainvirtualinputv2.cc swap before:5, 6 swap after:6, 5 swap before:3.2, -1.8 swap after:-1.8, 3.2

    扩展:

           复杂类型的的直接数据交换。

    转载请注明原文地址: https://ju.6miu.com/read-18864.html

    最新回复(0)