일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- elk
- 그라나다
- 아펠가모선릉
- 마드리드
- 스프링 AOP
- 아펠가모
- kotiln
- Kotlin
- 스페인 준비물
- c# scv
- Srping AOP
- 스페인
- HTTP #웹기술
- git명령어
- 400에러
- 코틀린 함수
- HTTP
- 코틀린
- 본식후기
- 바르셀로나
- db index
- @Component
- 코프링
- 세비야
- 관심지향프로그래밍
- b-tree index
- kopring
- sprintboot
- http상태코드
- 아펠가모 선릉
- Today
- Total
목록C, C++, C# (32)
끄적이는 메모장
# back_inserter / front_inserter back_inserter : 벡터의 맨 끝에 값을 삽입한다. front_inserter : 벡터의 맨 앞에 값을 삽입한다. ex) std::vector v1, v2; // v1 : 1, 3, 5 , v2 : 10, 30, 50 std::copy(v1.begin(), v1.end(), back_inserter(v2)); v2 : 10, 30, 50, 1, 3, 5 -> v2의 맨 끝부터 차례대로 v1의 값들이 복사되어 삽입 된다. std::copy(v1.begin(), v1.end(), front_inserter(v2)); v2 : 5, 3, 1, 10, 30, 50 -> v2의 맨 앞으로 v1의 값들이 복사되어 삽입 된다.
# std::transform @1 std::transform(InputIterator begin1, InputIterator end1, OutputIterator begin2, UnaryOperation op); InputIterator의 주어진 범위내의 값들을 op에 적용한 후 outputIterator의 시작점부터 결과를 작성해준다. ex) std::vector itr1; std::vector itr2; for.... itr1.push_back .. // -> itr1 : 1, 3, 5, 7, 9 itr2.resize(itr1.size()); // itr2에 itr1과 동일한 크기의 메모리를 할당해줌 std::transform(itr1.begin(), itr1.end(), itr2.begin(), ..
# nermeric_limits class template으로 특정 플랫폼에서 정수 혹은 부동 소수점의 type에 대한 정보를 제공함 ex) std::numeric_limits::min() // -2147483648 std::numeric_limits::max() // 2147483647 Member min() : type에 대한 최소값을 반환해줌 max() : type에 대한 최대값을 반환해줌 등... 자세히(https://msdn.microsoft.com/ko-kr/library/c707ct0t.aspx) denorm_min Returns the smallest nonzero denormalized value. digits Returns the number of radix digits that the..
# std::set_intersection 정렬 되어 있는 두 배열 혹은 벡터의 공통된 element를 만을 추출하여 새로운 배열을 만들어 준다. ex) int arr1[] = {1, 3, 7, 11, 9, 13, 5, 15}; int arr2[] = {3, 6, 12, 9, 15}; std:vector result(15) ; std::sort (arr1, arr1+8); std::sort (arr2, arr2+5); auto result_end = std::set_intersection(arr1, arr1+8, arr2, arr2+5, result.begin()); result.resize(result_end - result.begin()); // result --> 3, 9, 15
# tuple std::pair의 경우 두 개의 element를 한번에 담을 수 있는 object 였다. std::tuple의 경우는 pair가 확장되어 이종의 타입의 element를 갯수 제한 없이 담을 수 있는 object 이다. # std::make_tuple 주어진 element로 부터 type을 결정하여 tuple을 생성한다 auto tuple1 = std::make_tuple(1, 'a', 2.0); // tuple # std::get 주어진 tuple에서 위치를 기반으로 element 값을 반환한다. auto tuple2 = std::make_tuple(100, 'A', 3.0); auto get1 = std::get(tuple2); // 100 std::get(tuple2) = 'B' //..
# std::all_of 주어진 범위의 값들이 주어진 조건을 모두 만족하는 경우 -> true 아니면 false를 반환 혹은 주어진 범위가 empty라면 true # std::any_of 주어진 범위 값들 중 하나라도 조건을 만족하는 경우 -> true, 모두 만족하지 못하는 경우 false를 반환 혹은 주어진 범위가 empty라면 false # std::none_of 주어진 범위의 값들이 모두 주어진 조건을 만족하지 못하는 경우 -> true 아니면 false를 반환 혹은 주어진 범위가 empty라면 true int main() { std::vector v {4,7,10}; std::all_of(v.begin(), v.end(), [](int i){return i%3}) -> true std::all_..
#std::make_pair std::make_pair(element1, element2) 간단히, 두 element를 묶어 쌍으로 구성해주는 기능을 한다. 파라메터로는 first : 쌍의 첫 번째 element 를 가리킴 second : 쌍의 두 번째 element 를 가리킴 ex) std::pair 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 ..
# std::enable_shared_from_this shared_ptr을 이용하여 동일한 객체에 대한 소유권을 부여하고 싶은 경우 class 혹은 structure를 enable_shared_from_this를 상속받게 한다. 그이유는 shared_ptr을 이용하여 단순히 객체에 대한 소유권을 공유하려고 할 때, 잘못된 참조가 발생할 수 있는데 먼저 객체에 대한 소유권을 보유한 쪽에서 객체를 소멸시켜 버림으로써 나중에 소유권을 공유한 쪽에서 참조 문제가 발생하는 것이다. enable_shared_from_this의 사용은 이렇게 객체의 생성 및 소멸에 의한 참조 문제를 방지하기 위해 사용이 된다. class A : public std::enable_shared_from_this { .... } int..