Notice
Recent Posts
Recent Comments
Link
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | 5 | 6 | |
| 7 | 8 | 9 | 10 | 11 | 12 | 13 |
| 14 | 15 | 16 | 17 | 18 | 19 | 20 |
| 21 | 22 | 23 | 24 | 25 | 26 | 27 |
| 28 | 29 | 30 | 31 |
Tags
- function
- Pre-processing
- Python
- C++
- Class
- pass by reference
- assignment operator
- 배열
- 오블완
- Data Science
- const
- pointer
- 반복문
- programming
- 포인터
- raw data
- array
- predictive analysis
- 티스토리챌린지
- string
- 알고리즘
- 문자열
- vscode
- Object Oriented Programming
- OOP
- baekjoon
- 함수
- Deep Learning
- 파이썬
- 백준
Archives
- Today
- Total
Channi Studies
[C++] 추가적인 변수 선언 없이 값 교환하기 (swap) 본문
프로그래밍을 하다 보면 2개의 변수에 대해서 서로의 값을 교환해야 하는 경우가 있습니다.
swap 함수를 쓰면 편하지만, 직접 효과를 구현해야 할 때도 (혹시?) 있을 것 입니다.
가령 a = 40, b = 30일 때 a = 30, b = 40으로 만드는 것입니다.
저만 그런지 모르곘지만, 항상 보조 변수를 선언해서 이 방법을 해결했었습니다.
int n 같은 변수에 a 나 b 중 하나를 저장해 놓고, 순차적으로 바꾸는 것이죠.
int a {40};
int b {30};
int n {};
n = a;
a = b;
b = n;
cout << a << endl; // 30
cout << b << endl; // 40
이런 식으로요.
아마 익숙하실 것 같습니다.
그런데 쓸데 없는 변수를 만들지 않고 가능한 기발한 방법을 찾아서 기록해둡니다.
int n1{30};
int n2{40};
n1 = n1 + n2; // n1 = 30 + 40 = 70
n2 = n1 - n2; // n2 = 70 - 40 = 30
n1 = n1 - n2; // n1 = 70 - 30 = 40
cout << n1 << endl; // 40
cout << n2 << endl; // 30
이렇게 하면 의미없는 변수를 선언하지 않고 해결이 됐습니다.
사실 아주 간단한 아이디어인데 이런게 쉽게 생각나지 않네요..
이런게 바로바로 떠오른다면 참 좋을 것 같습니다.
'C++ > 기타' 카테고리의 다른 글
| [C++] cin.ignore() (0) | 2023.12.28 |
|---|---|
| [C++] vscode 디버깅 세팅 기록 (0) | 2023.12.23 |
| [C++] 랜덤 숫자 random number (0) | 2023.12.16 |
| [C++] <iomanip> setprecision(n) (0) | 2023.12.10 |
| [C++] Compund Assignment Operator (0) | 2023.12.07 |