[C++] vector의 개념
vector는 C++표준 라이브러리 (Standard Template Library)에 있는 컨테이너로
사용자가 손쉽게 사용하기 위해 정의된 클래스이다.
왜 vector를 사용하냐면 동적으로 원소를 추가할 수 있으며, 이때 크기가 자동을 늘어난다는 장점이 있기 때문이다.
하지만, 배열과 마찬가지로 원소들이 하나의 메모리 블록에 연속하게 저장되는 과정에서
메모리 재할당이 발생할 수 있고, 이로 인해 부하가 발생하는 것이 단점이다.
v.begin() - 벡터 시작점의 주소 값 반환
v.front() - 벡터의 첫번째 요소 접근
v.back() - 벡터의 마지막 요소 접근
v.end() - 벡터 (끝부분+1) 주소값 반환
v.size() - 벡터가 생성된 크기
v.capacity() - 벡터의 최대 할당 크기
즉 capacity는 현재 가지고 있는 원소의 개수(size, length)보다 더 많은 공간을 할당해 놓고 있다.
vector 헤더 추가하기
#include<vector>
vector 선언하기
#include <vector>
vector<int> v; //int 타입 벡터 생성
vector<int> v = {1,2,3}; //int형 벡터 생성 후 1,2,3 으로 초기화
vector<int> v[10]; //int 타입 벡터 배열(크기 : 10) 생성
vector<vector<int>> v; //2차원 벡터 생성(행과 열 모두 가변)
vector<int> v(5); //5개의 원소를 0으로 초기화
vector<int> v(5,3); //5개의 원소를 3으로 초기화
vector<int> v2(v); //벡터 v를 복사하여 벡터 v2생성
vector 기본 함수
추가
v.push_back(10); //마지막 위치에 숫자 10 추가
v.insert(2,10); //index 2의 위치에 숫자 10 추가
v. insert(2,3,4); //2번째 위치에 3개의 4값을 추가
삭제
v.pop_back(); //마지막에 넣은 값 제거
v.erase(vec.begin(), vec.begin()+5); //index 0~5의 값을 제거
v.clear(); //모든 값 제거
출력
#include <iostream>
#include <vector>
using namespace std;
vector<int> v;
for(int i=0;i<3;i++){
v.push_back(i);}
for(int i=0;i<v.size();i++){
cout<<v[i]<<" ";
cout<<v.front()<<endl;
cout<<v.back()<<endl;
}
앞서 벡터는 배열의 형태를 띄고 있다고 설명한 바가 있다. 따라서 위 코드와 같이
vector 값 저장과 출력 모두 배열 개념을 기반하여 반복문을 사용하면 된다.
+) 참고 자료
[C++] STL Vector 사용법 & 예제 총정리 (tistory.com)
[C++] STL Vector 사용법 & 예제 총정리
Vector란? Vector는 C++ 표준 라이브러리(Standard Template Library)에 있는 컨테이너로 사용자가 손쉽게 사용하기 위해 정의된 class입니다. Vector의 가장 큰 장점은 동적으로 원소를 추가할 수 있으며 크기
coding-factory.tistory.com