알고리즘을 작성하다가 C++에서 vector의 개념이 필요해 정리하게 되었다.
Vector는 STL(Standard Template Library)의 컨테이너 클래스이다.
STL : 표준 템플릿 라이브러리, 알고리즘, 컨테이너, 함수자, 반복자로 구성
vector의 특징은 데이터를 뒤에서 추가 및 삭제할 수 있다는 점이다.
배열과는 달리 미리 사이즈를 정하지 않고 정의하여 사용할 수 있고, 동적으로 메모리를 할당하여 어떤 데이터타입도 자유롭게 사용할 수 있다.
vector를 사용할 수 있는 함수의 종류는 아래에 차례대로 볼 수 있다.
using namespaced td; //1
#inlcude <vector> //2
vector<data_type> v(size, init_value);
vector<data_type> v;
vector<data_type> v(size);
vector<data_type> v(size, init_value);
vector<data_type> v(targetv); //targetv를 v로 복사//
v.function(prpams1, prams2, ...)
Member functions
| function | content |
|---|---|
| (constructor) | Construct vector (public member function) |
| (destructor) | Vector destructor (public member function) |
| operator= | Assign content (public member function) |
Iterators
| function | content |
|---|---|
| begin | Return iterator to beginning (public member function) |
| end | Return iterator to end (public member function) |
| rbegin | Return reverse iterator to reverse beginning (public member |
| rend | Return reverse iterator to reverse end (public member function) |
| cbegin | Return const_iterator to beginning (public member function) |
| cend | Return const_iterator to end (public member function) |
| crbegin | Return const_reverse_iterator to reverse beginning (public member function) |
| crend | Return const_reverse_iterator to reverse end (public member function) |
Capacity
| function | content |
|---|---|
| size | Return size (public member function) |
| max_size | Return maximum size (public member function) |
| resize | Change size (public member function) |
| capacity | Return size of allocated storage capacity (public member function) |
| empty | Test whether vector is empty (public member function) |
| reserve | Request a change in capacity (public member function) |
| shrink_to_fit | Shrink to fit (public member function) |
Element access
| function | content |
|---|---|
| operator[] | Access element (public member function) |
| at | Access element (public member function) |
| front | Access first element (public member function) |
| back | Access last element (public member function) |
| data | Access data (public member function) |
Modifiers
| function | content |
|---|---|
| assign | Assign vector content (public member function) |
| push_back | Add element at the end (public member function) |
| pop_back | Delete last element (public member function) |
| insert | Insert elements (public member function) |
| erase | Erase elements (public member function) |
| swap | Swap content (public member function) |
| clear | Clear content (public member function) |
| emplace | Construct and insert element (public member function) |
| emplace_back | Construct and insert element at the end (public member function) |
Allocator
| function | content |
|---|---|
| get_allocator | Get allocator (public member function) |
Non-member function overloads
| function | content |
|---|---|
| relational | operators Relational operators for vector (function template) |
| swap | Exchange contents of vectors (function template) |
Template specializations
| function | content |
|---|---|
| vector | Vector of bool (class template specialization) |
[1] https://cplusplus.com/reference/vector/vector/?kw=vector#google_vignette