본문 바로가기
C++/라이브러리 (STL etc)

[c++] 1차원 배열(벡터) 선언 및 초기화 방법

by 스프링섬머 2023. 7. 25.
728x90

1차원 배열을 선언하는 2가지 방법에 대해서 소개합니다.

1. 기본 배열로 선언 및 초기화

2. <STL> vector를 이용한 선언 및 초기화

 

1. 기본 배열로 선언 및 초기화

  • 배열 선언시, const로 미리 지정된 size만큼 선언합니다. 여기서 "size"라는 이름으로는 할당이 안됨.
  • void change_arr_value() 함수에서 배열은 arr[] or *arr2 형태 모두 동일하게 주소를 받아 원본 배열 값에 접근, 값 변경 가능.
  • 배열의 모든 값을 특정 값으로 초기화 하는 방법은 2가지가 있음.
  • 1) 반복문으로 일일이 값 할당
  • 2) fill()을 이용한 할당. (동작은 동일하겠지만 간편히 한 줄로 작성 가능)

 

2. vector를 이용한 선언 및 초기화

  • #include<vector>를 통해 컨테이너를 불러옴. 
  • vector의 선언시 비어 있는 상태
  • vector<int> v2(3, -1)을 통해 선언하자마자 특정 값으로 초기화 가능
  • vector를 함수의 인자로 넘겨줄 시, change_vector_value()에서 처럼 복사할건지, 주소만 넘겨줄 건지 생각해야됨
  • + fill()을 사용해서 초기화도 가능하다.
    ex1) fill(vector.begin(), vector.end(), value) : vector 처음부터 끝까지 value로 값 할당
    ex2) fill(vector.begin(), vector.begin()+n, value) : vector 처음부터 n번째까지 value로 값 할당
  • 자세한 vector에 대한 내용은 아래 링크.
  • https://forward-gradually.tistory.com/9
 

c++ STL <vector> 정리

vector container 란? 자동으로 메모리가 할당되는 배열, 인덱스 접근하여 값 변경 가능 함수로 보낼시에는 참조자를 사용해야 주소를 보내, 원본 변경 가능. 또한, 시간 복잡도도 O(N) -> O(1)로 줄어듬.

forward-gradually.tistory.com

 

728x90