[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<intfloatchar*> popura;
    popura = std::tuple<intfloatchar*>(11.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<int5> arr = {01234};
    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