꾸르꾸르

[C++] xor 연산을 이용한 swap 본문

코딩, 알고리즘, 문제풀이/문법,알고리즘,C++,기타등등

[C++] xor 연산을 이용한 swap

GGUGGU- 2020. 4. 23. 00:01

2017. 11. 14에 쓰여진 글입니다.


 

일반적인 tmp를 이용한

tmp=a;

a=b;

b=tmp;

말고 

xor연산을 이용한 swap

#include <iostream>
 
using namespace std;
 
int main()
{
    int a = 5;
    int b = 3;
    cout << a << " " << b << endl;    //3, 5 출력
    /*a b Swap*/
    a ^= b;
    b ^= a;
    a ^= b;
    /*a b Swap*/
    cout << a << " " << b << endl;    //바뀌어서 5,3 이 출력됨
    //기본적인 swap(tmp이용)보다는 속도면에서 조금 느림. 
    //그러나 메모리절약이 가능(tmp를 따로 만들 필요없음)
    
    return 0;
}

실행화면

 

Comments