C++ 값 교환하기 Swap

Notepad96

·

2020. 11. 14. 21:41

300x250

 

 
 

1. swap

 

swapalgorithm 라이브러리의 있는 함수로서 두 변수의 저장되어 있는 값을 서로 교환한다.

 

 

 

이에 더하여 swap_ranges 함수는 반복자를 인자로 받아, 지정한 범위의 값들을 서로 교환한다.

 

 

 


2. 코 드

환경 : Visual studio 2019
 
#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

 

 

300x250