일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- kotiln
- b-tree index
- kopring
- elk
- 아펠가모선릉
- 코프링
- 400에러
- 마드리드
- 그라나다
- 바르셀로나
- git명령어
- db index
- @Component
- 세비야
- 코틀린 함수
- 관심지향프로그래밍
- Kotlin
- sprintboot
- 코틀린
- 스프링 AOP
- Srping AOP
- 스페인 준비물
- 아펠가모 선릉
- HTTP
- http상태코드
- 본식후기
- c# scv
- 아펠가모
- 스페인
- HTTP #웹기술
- Today
- Total
끄적이는 메모장
[C++11] std::make_pair / std::move / std::swap 본문
#std::make_pair
std::make_pair(element1, element2)
간단히, 두 element를 묶어 쌍으로 구성해주는 기능을 한다.
파라메터로는
first : 쌍의 첫 번째 element 를 가리킴
second : 쌍의 두 번째 element 를 가리킴
ex)
std::pair <int, char> p1 ;
p1 = std::make_pare (1, 'a');
p1.first // 1
p1.second // a
#std::move
객체에 RValue reference를 반환 해준다.
copy를 피하기 위하여 사용된다.
ex1)
int a = 1;
int b;
b = a // a = 1, b = 1
b = std::move(a) // b = 1 , a loses its value
ex2) - swap
template <class T>
swap1(T& v1, T& v2) {
T temp(v1); // v1의 값이 2개
v1 = v2 ; // v2의 값이 2개 , v1 값 한 개 사라짐
v2 = temp ; // temp의 값이 2개 , v2 값 한 개 사라짐
}
--> 각 단계 마다 copy가 일어남
template <class T>
swap1(T& v1, T& v2) {
T temp(std::move(v1));
v1 = std::move(v2);
v2 = std::move(temp) ;
}
--> 값의 copy가 아닌 move --> 효율적인 메모리사용
# std::swap
두 객체 간의 값을 바꾸어 준다.
swap(T& a, T& b)
swap(T& a[N], T& b[N])
int a = 1, b= 10;
std::swap(a,b) // a = 10, b = 1;
int a[2] = {10, 20};
int b[2] = {1,2};
std::swap(a,b) // a = {1,2}, b = {10,20}
'C, C++, C# > C++ 공부' 카테고리의 다른 글
[C++11] tuple (0) | 2018.06.07 |
---|---|
[C++11] std::all_of, / std::any_of / std::none_of (0) | 2018.06.07 |
[C++11] std::enable_shared_from_this (0) | 2018.06.07 |
[C++11] mutex (0) | 2018.06.01 |
[C++11] std::bind, std::placeholder (0) | 2018.05.31 |