C++ 벡터 사용법



안녕하세요 열코입니다.


C++에서 벡터는 표준 템플릿 라이브러리(STL)에서 제공하는 동적 배열구조 클래스입니다.


C의 배열처럼 빠른 랜덤 접근이 가능하며 자동으로 배열의 크기 조절과 추가 삭제가 가능합니다.


모든 자료형에 대해 배열처럼 저장할 수 있지만 한번에 한 타입만 저장이 가능합니다.


자바의 벡터와 마찬가지로 배열 크기를 추가할때 기존 배열 크기의 100%가 늘어납니다.(2배)



먼저 벡터를 선언하는 방법에 대해 알아보겠습니다.



vector<int> integer_vector;

vector<double> double_vector;

vector<char> char_vector;


벡터 클래스는 C++ 모든 자료형의 저장을 지원하며 위 코드와 같이 만들수 있습니다.


벡터에서의 데이터 추가 및 삭제는 배열의 끝에서 O(1), 배열의 중간 O(n)만큼의 시간복잡도가 소요됩니다.



벡터에 데이터 추가하기



for (int i = 0; i < 5; i++) {

integer_vector.push_back(i);

double_vector.push_back((double)i);

char_vector.push_back('a' + i);

}


벡터 클래스에서 push_back() 함수를 이용하여 요소의 끝에 데이터를 추가할 수 있습니다.


지정된 위치에 요소를 추가하려면 insert() 함수를 사용하세요.



벡터의 데이터 삭제하기



integer_vector.pop_back(); // 요소 끝의 데이터 삭제

double_vector.erase(double_vector.begin()); // 지정된 위치의 데이터 삭제

char_vector.clear(); // 모든 데이터 삭제



벡터는 다음과 같은 내부 함수가 존재합니다.



begin() - 벡터의 첫번째 요소를 가리킵니다.


end() - 벡터의 마지막 요소를 가리킵니다.


size() - 벡터의 요소 수(크기)를 반환합니다.


resize() - 벡터의 크기를 재조정합니다.


empty() - 벡터가 비어있는지 여부(true or false)를 반환합니다.


at() (또는 [ ]) - 벡터의 인덱스에 접근할 수 있습니다.


front() - 벡터의 첫번째 요소를 반환합니다.


back() - 벡터의 마지막 요소를 반환합니다.


data() - 포인터가 접근할 수 있도록 벡터의 주소값을 반환합니다( int *p = vector1.data() )



더 상세한 내용을 확인하고 싶다면 여기를 방문하세요.






이상 'C++ 벡터'에 대해 알아보았습니다.


질문 또는 오타나 잘못된 정보가 있는 경우 댓글로 달아주세요!


공감♡ 버튼을 눌러주시면 더욱 유용하고 좋은 포스팅으로 찾아 뵙겠습니다.


'C, C++' 카테고리의 다른 글

C++ 클래스와 객체  (0) 2018.10.09
C/C++ 구조체 사용법 및 예제  (1) 2018.10.08
C/C++ 배열 사용법  (0) 2018.10.05
C 파일처리  (0) 2018.10.02
C언어 포인터  (8) 2018.09.25
C++ 자바 상속 비교  (0) 2018.09.08
C 랜덤 - 난수 생성하기  (7) 2018.09.06
C++ String 문자열 사용법 정리  (0) 2018.08.20

to Top