🌈 프로그래밍/C++

[C++] 1.1.15 이니셜라이저 리스트

반응형

 

안녕하세요! 수구리입니다.

 

 

저번 포스팅에서는 반복문에 대해서 알아보았습니다!

 

 

2021.08.13 - [C++] - 1.1.14 반복문

 

1.1.14 반복문

안녕하세요? 수구리에요. 드디어 반복문까지 도착했습니다.! 이번 포스팅에서는 반복문의 기본 형태들에 대하여 알아보고, C++에서 특이한 반복문인 범위 기반 반복문에 대하여 알아보도록 하겠

tasddc.tistory.com

 

 

이번 시간에는 이니셜 라이저 리스트에 대해서 알아보도록 하겠습니다!

 

 

이니셜라이저 리스트란?

 

  • <initializer_list> 라는 헤더 파일에 정의되어 있다.

 

  • 이를 통해 여러 인수를 받는 함수를 쉽게 작성할 수 있다.

 

  • vector에 저장할 객체의 타입을 지정할 때처럼 원소 타입에 대한 리스트를 <>로 묶어서 지정한다.

 

아래의 예제에서 이니셜라이저 리스트를 인수로 받는 함수에 대해서 알아보고,

 

지난 포스팅 마지막 부분에 있는 범위 기반 for문을 이용하여 인자들의 총합을 계산하는 예제입니다!

 

 

 


 

 

#include <initialzer_list>

using namespace std;

int makeSum(initializer_list<int> lst){ // 정수에 대한 이니셜라이저 리스트를 인수로 받는다.
    int total = 0;
    for (int value : lst){ // 범위 기반 for문을 활용하여 주어진 정수들을 더한다.
        total += value;
    }
    return total;
}

// 호출 방법
int a = makeSum({1, 2, 3});
int b = makeSum({10, 20, 30, 40, 50, 60});

 

 


 

이니셜 라이저 리스트의 특징

 

  • 이니셜라이저 리스트는 타입에 안전하다. (type-safe 하다.)

 

  • 이니셜 라이저 리스트를 정의할 때는 지정한 타입만 허용한다. (위의 예에서 함수를 호출할 때, 인자로 double type을 지정하면 컴파일 에러 또는 경고 메시지가 출력됨.)

 

 

이상으로 이니셜 라이저가 무엇인지? 그리고 그 특징은 어떤지 이를 사용한 예제에 대해서 알아보았습니다.

 

 

감사합니다!

반응형

'🌈 프로그래밍 > C++' 카테고리의 다른 글

[C++] 1.2.3 const의 이해  (3) 2021.08.18
[C++] 1.2.1 ~ 1.2.2 스트링 & 포인터와 동적 메모리  (0) 2021.08.18
[C++] 1.1.14 반복문  (2) 2021.08.13
[C++] 1.1.13 구조적 바인딩  (0) 2021.08.13
[C++] 1.1.12 std::vector  (0) 2021.08.13