C++ STL Vector
이때까지 C만 사용하다가 C++로 넘어오게 되었습니다.
class 사용 가능 등 객체지향 프로그래밍이 가능하다는 장점도 있겠지만,
무엇보다 STL이 사용가능하다는 것이 C++를 공부하게 된 가장 큰 계기가 된 것 같습니다.
STL은 사용법, 특성만 간단히 공부하고 문제를 풀어보면서 부족한 부분을 공부하는 방식으로 학습하겠습니다.
Vector
1) Vector의 정의
Vector는 자동으로 메모리가 할당이 되는 배열이라고 생각하면 됩니다.
C에서는 동적으로 사용할 것이 아니면 정적으로 크기를 지정해놓고 배열을 사용하여야 했지만
C++에서는 vector를 이용해서 쉽게 배열의 크기를 늘리고 데이터를 집어넣을 수 있습니다.
2) Vector의 사용
Vector를 사용하기 위해서는 다음의 과정을 거쳐 사용하면 됩니다.
1. 헤더파일 추가 : #include <vector>
2. using namespace std; (편의상)
3. vector <[data type]> [변수 이름]
ex) vector <int> v;
3) Vector의 생성자
vector<int> v(5); : 0으로 초기화 된 capacity가 5인 vector를 생성합니다.
vector<int> v(5,3); : 3으로 초기화 된 capacity가 5인 vector를 생성합니다. (순서 주의!)
4) Vector의 함수
Vector의 구조는 다음과 같습니다.
v.begin()과 v.end()는 나중에 공부하게 될 iterator와 사용을 하게 된다고 해서 일단 붉은색으로 밑줄을 쳐 두었습니다.
Vector의 함수가 많지만, 제가 코딩하면서 사용하게 될 것 같은 함수들만 추려보았습니다.
v.front() : 첫번째 원소를 참조합니다.
v.back() : 마지막 원소를 참조합니다.
v.clear() : 모든 원소를 제거합니다 (size만 줄고 capacity는 그대로, 내용만 지운다)
v.size() : 원소의 갯수를 리턴합니다.
v.capacity() : 할당된 공간의 크기를 리턴합니다.
v.empty() : vector가 비었으면 true를 return 아니면 false
v.push_back(2) : 마지막 원소 뒤에 원소 2를 삽입합니다.
v.pop_back(); : 마지막 원소를 제거합니다.
v.insert(3, 2) : index 3에 2의 값을 삽입
위와 같이 간단하게 vector에 대해서 알아보았습니다.
백준에서 C++의 코드를 참조할 때 보면 vector가 항상 사용되어 있어서 지레 겁을 먹었었는데,
알고보니 배열이었습니다.
다음의 블로그를 참고하여 작성하였습니다.