C++에서 tuple 사용 하기

2339 단어 C/C++

이 논문 은 python 언어 가 아 닌 C+11 기준 에서 tuple 을 사용 하 는 것 을 논의 하고 있다.
tuple 하면 python 언어 가 가장 먼저 떠 오 를 것 입 니 다.그러나 tuple 은 python 에 만 있 는 것 이 아니 라 C\#,C++등 언어 에 도 이러한 데이터 구조 가 있 습 니 다.
C++의 tuple 과 python 언어 는 유사 합 니 다.여러 종류의 데 이 터 를 저장 할 수 있 는 강력 한 용기 로 pair 에 대한 일반화 입 니 다.
C++에서 tuple 을 사용 하려 면 먼저 헤더 파일 tuple 과 이름 공간 std 를 참조 해 야 합 니 다.
tuple 과 관련 된 총 4 개의 함수 가 있 습 니 다.각각 소개 합 니 다.
1. make_tuple:tuple 만 들 기
auto tup1 = std::make_tuple("Hello World!", 'a', 3.14, 0);

위 코드 는 tuple 형식의 원본 그룹 을 만 들 었 습 니 다.
tuple 에 서 는 전혀 다른 데이터 형식 일 수 있 음 을 알 수 있 습 니 다.
2.tie:tuple 을 뜯 는 데 사용
auto tup1 = std::make_tuple(3.14, 1, 'a');
double a;
int b;
char c;
std::tie(a, b, c) = tup1;

이렇게 한 결 과 는 a=3.14,b=1,c='a'이다.
한 사람의 값 을 원 하지 않 으 면 ignore 로 대체 할 수 있 습 니 다.
std::tie(ignore, b, c) = tup1;

3. forward_as_tuple:오른쪽 값 참조 데 이 터 를 받 아들 여 tuple 생 성
auto tup2 = std::forward_as_tuple(1, "hello");

위 코드 는 tuple 형식의 원본 그룹 을 만 들 었 습 니 다.
tuple 의 매개 변 수 는 모두 오른쪽 값 참조 임 을 알 수 있 습 니 다.앞에서 논의 한 tie 함 수 는 왼쪽 값 만 받 아들 일 수 있 습 니 다.
4. tuple_cat:tuple 연결 에 사용
std::tuple tup1(3.14, "pi");
std::tuple tup2(10, 'a');
auto tup3 = tuple_cat(tup1, tup2);

tup 1 과 tup 2 를 연결 하면 tup 3 가 됩 니 다.
tuple 의 요 소 를 가 져 오 는 데 다음 과 같은 동작 이 있 습 니 다.
1.get:첫 번 째 요소 의 값 가 져 오기
std::tuple tup1(3.14, "pi");
cout << get<0>(tup1);

이렇게 해서 tup 1 의 첫 번 째 요소 3.14 를 출력 하 였 습 니 다.
2. tuple_element:tuple 의 특정 요소 데이터 형식 가 져 오기
std::tuple_element<0, decltype(tup1)>::type

이렇게 하면 tup 1 의 첫 번 째 요소 의 데이터 형식 을 얻 을 수 있 습 니 다.
메모:int,char 와 같은 데이터 형식 을 가 져 옵 니 다.'int'나'char'라 고 쓰 인 문자열 이 아 닙 니 다.
3.size:tuple 의 요소 갯 수 가 져 오기
출력 결 과 는 2 로 이 tuple 에 두 개의 요소 가 있 음 을 나타 낸다.
이 를 통 해 알 수 있 듯 이 tuple 은 매우 강력 한 데이터 구조 로 예전 에 자주 사용 하 던 pair,vector 등 보다 훨씬 강하 다.
상기 코드 는 모두 VS 2015 에서 테스트 에 통과 되 었 다.
C++14 와 관련 된 일부 내용 이 있 으 며,최소한 VS 2015 를 요구 해 야 통과 할 수 있다 는 학생 도 있다.그러나 tuple 이라는 종 류 는 C+11 에 있 고 VS 2013 에서 사용 할 수 있 으 며 VS 2015 에서 보충 할 수 있 습 니 다.

좋은 웹페이지 즐겨찾기