현대 C++(C++11, C++14 이상)에서는 초기화 리스트(initializer list)를 사용하여 벡터를 매우 간단하게 선언과 동시에 초기화할 수 있습니다.
std::vector<int> vec = {1, 2, 3};이처럼 중괄호 {} 안에 원하는 값을 나열하기만 하면 되므로, 하드코딩된 값으로 벡터를 만들 때 가장 직관적이고 권장되는 방법입니다.
알고리즘
시작
벡터 v를 초기화한다.
accumulate 함수를 사용하여 벡터 v의 모든 요소의 합을 구한다.
결과를 출력한다.
끝.예제 코드
다음은 벡터를 초기화한 뒤, 모든 요소의 합을 구하여 출력하는 간단한 예제입니다.
#include<iostream>
#include<vector>
#include<numeric>
using namespace std;
int main() {
// 초기화 리스트로 벡터 선언 및 초기화
vector<int> v = {2, 7, 6, 10};
cout << "모든 요소의 합:" << endl;
// accumulate: 시작 반복자부터 끝 반복자까지의 값을 모두 더함
cout << accumulate(v.begin(), v.end(), 0);
}실행 결과
모든 요소의 합: 25
코드 설명
- vector<int> v = {2, 7, 6, 10}; — 초기화 리스트를 통해 네 개의 정수 값으로 벡터를 한 번에 생성합니다.
- accumulate(v.begin(), v.end(), 0) — <numeric> 헤더에 포함된 함수로, 세 번째 인자인 초기값 0부터 시작하여 벡터의 모든 요소를 순차적으로 더합니다.
참고: 다른 초기화 방법
C++11 이전에는 push_back을 사용해야 했지만, 현대 C++에서는 아래와 같은 방법도 활용할 수 있습니다.
// 크기만 지정하여 초기화 (모든 요소가 0으로 채워짐)
std::vector<int> v1(5);
// 크기와 초깃값 지정
std::vector<int> v2(5, 10); // {10, 10, 10, 10, 10}
// 다른 벡터나 배열로 복사 초기화
int arr[] = {1, 2, 3};
std::vector<int> v3(arr, arr + sizeof(arr) / sizeof(int));하드코딩된 특정 값들로 벡터를 초기화하는 경우라면, 첫 번째 예제처럼 중괄호 초기화 리스트를 사용하는 것이 가장 간결하고 가독성이 좋습니다.