본문으로 바로가기

벡터를 이미 선언된 배열로 초기화하고 싶을 경우 해당 배열의 첫 인덱스의 주소와 마지막 인덱스의 주소를 파라미터로 넣어주면 된다. 이때 마지막 주소를 상수가 아닌 sizeof 함수를 사용하여 모든 경우에 다 적용할 수 있게 선언할 수 있는데,

vector<type> v(a, a + sizeof(a) / sizeof(*a));

아래의 예제를 통해 확인해보자.

#include <cstdio>
#include <vector>
using namespace std;

int main() {
  int a[] = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10};
  vector<int> v(a, a + sizeof(a) / sizeof(*a));
  for (auto e: v) {
    printf("%d ", e);
  }// 1 2 3 4 5 6 7 8 9 10
  return 0;
}

댓글을 달아 주세요