[C++11] 주요 기능들
2015. 9. 7. 22:50ㆍ프로그래밍/C/C++
728x90
728x90
auto
컴파일 타임에 타입이 지정된다. iterator에 사용하면 좋다고 한다.
1 2 3 4 5 6 7 8 9 10 11 | void autoKeyword() { int varInt = 0; double varDouble = 0.0f; auto i1 = varInt; auto i2 = varDouble; std::cout<<sizeof(i1)<<std::endl; std::cout<<sizeof(i2)<<std::endl; } | cs |
결과 : 4 8
람다
함수 객체가 들어가야할 자리에 간단히 함수 자체를 직접 구현가능하게 함.
함수 포인터처럼 사용하는 것이 가능하다.
STL의 함수 객체 대신에 아주 유용하다.
범위 for
이건 뭐 자주 사용해서..
여기에 auto를 사용하면 좋다!
1 | for(auto i : Object) { ... } | cs |
nullptr
NULL Pointer!
스마트 포인터
shared_ptr, unique_ptr
tuple
2개 이상의 서로 다른 데이터 타입을 하나로 묶을 수 있다.
#include <tuple>
1 2 3 4 5 6 7 8 9 | void tupleTest() { std::tuple<int, float, char*> popura; popura = std::tuple<int, float, char*>(1, 1.0f, "popura"); std::cout<<std::get<0>(popura)<<" "; std::cout<<std::get<1>(popura)<<" "; std::cout<<std::get<2>(popura)<<std::endl; } | cs |
array
일반 고정 배열 타입.
#inlcude <array>
1 2 3 4 5 6 7 8 9 | void arrayTest() { std::array<int, 5> arr = {0, 1, 2, 3, 4}; for (auto i : arr) { std::cout<<i<<" "; } std::cout<<std::endl; } | cs |
forward_list
단방향 리스트. list보다 용량이 적고, 속도가 빠르다.
emplace : 중간 복사본을 생성하지 않고, 원소에 직접 대입한다
unordered_map
정렬되지 않은 Map, hash_map과 같은 구조
chrono
나노세컨드까지 계산이 가능한 초정밀 타임 객체
1 2 3 4 5 6 7 8 9 10 11 12 | void chronoTest() { std::chrono::system_clock::time_point start = std::chrono::system_clock::now(); arrayTest(); std::chrono::duration<double> time = std::chrono::system_clock::now() - start; std::cout<<time.count(); } | cs |
결과 0.001
thread
멀티스레드 라이브러리
동기화객체
std::atomic
Lock없이 Lock-free로 변수값을 변경할 수 있다.
astnc/future
함수를 비동기로 실행하기
728x90
반응형
'프로그래밍 > C/C++' 카테고리의 다른 글
[C++] for each 써보기 (2) | 2016.01.19 |
---|---|
[C++, Json] jsoncpp 사용하기 (5) | 2016.01.06 |
[C/C++] 삼항 연산자 (4) | 2015.11.27 |
[C++/STL] STL 벡터와 배열 차이 (1) | 2015.08.19 |
[C++] 스마트포인터(Smart Pointer) (0) | 2015.07.14 |
[STL] vector의 at()과 []의 차이 (1) | 2015.07.11 |
2차원 벡터 사용하기 (1) | 2015.07.08 |