
C++ 값 교환하기 Swap
Notepad96
·2020. 11. 14. 21:41
1. swap
swap은 algorithm 라이브러리의 있는 함수로서 두 변수의 저장되어 있는 값을 서로 교환한다.
이에 더하여 swap_ranges 함수는 반복자를 인자로 받아, 지정한 범위의 값들을 서로 교환한다.
2. 코 드
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int main() {
int a = 10, b = 1000;
cout << "a = " << a << ", b = " << b << "\n";
swap(a, b);
cout << "a = " << a << ", b = " << b << "\n";
cout << "\n=============================\n";
vector<int> v = { 10, 20, 30, 40, 50 };
cout << "vector1 : ";
for (int i : v) cout << i << " ";
vector<int> v2(5,0);
cout << "\nvector2 : ";
for (int i : v2) cout << i << " ";
cout << "\n=============================\n";
swap_ranges(v.begin(), v.begin() + 3, v2.begin());
cout << "vector1 : ";
for (int i : v) cout << i << " ";
cout << "\nvector2 : ";
for (int i : v2) cout << i << " ";
cout << "\n=============================\n";
return 0;
}
- swap 함수를 사용하여서 두 변수의 값을 간단하게 교환할 수 있다.
- swap_ranges 는 인자로 (시작 반복자, 종료 반복자, 교환 시작 반복자) 로서
시작 반복자 ~ 종료 반복자 만큼의 크기만큼 교환 시작 반복자에서 시작하여 교환을 한다.
3. 참 조
swap - C++ Reference
function template C++98: , C++11: std::swap template void swap (T& a, T& b); header// moved from to in C++11 non-array (1)template void swap (T& a, T& b) noexcept (is_nothrow_move_constructible ::value && is_nothrow_move_assignable ::v
www.cplusplus.com
swap_ranges - C++ Reference
function template std::swap_ranges template ForwardIterator2 swap_ranges (ForwardIterator1 first1, ForwardIterator1 last1, ForwardIterator2 first2); Exchange values of two ranges Exchanges the values of each of the elements in the range [first1
www.cplusplus.com
'C++ > STL' 카테고리의 다른 글
C++ 인접하는 중복되는 원소 지우기 unique (0) | 2020.11.15 |
---|---|
C++ 문자열 소문자, 대문자 변환 transform (0) | 2020.11.15 |
C++ vector 범위 초기화 Copy (0) | 2020.11.14 |
C++ 동일 원소 포함 여부 확인 is_permutation (0) | 2020.11.14 |
C++ 일련하는 원소 찾기 Search (0) | 2020.11.13 |