| ๊ตฌ๋ถ | ์ธํฐํ์ด์ค | ์ค๋ช |
|---|---|---|
| ์์ฑ์ | vector() | ๋น ๋ฒกํฐ ์์ฑ |
vector(size_type n) | n๊ฐ์ ๊ธฐ๋ณธ๊ฐ ์์๋ก ์ด๊ธฐํ | |
vector(size_type n, const T& val) | n๊ฐ์ val ๊ฐ์ผ๋ก ์ด๊ธฐํ | |
vector(const vector& other) | ๋ณต์ฌ ์์ฑ์ | |
vector(vector&& other) | ์ด๋ ์์ฑ์ (C++11) | |
vector(initializer_list<T> ilist) | ๋ฆฌ์คํธ ์ด๊ธฐํ (C++11) | |
template<class InputIterator> vector(InputIterator first, InputIterator last) | ๋ฐ๋ณต์ ๊ตฌ๊ฐ์ผ๋ก ์ด๊ธฐํ |
| ๋ฉค๋ฒ ํจ์ | ์ธํฐํ์ด์ค | ์ค๋ช |
|---|---|---|
| Capacity | size() | ์์ ๊ฐ์ ๋ฐํ |
capacity() | ํ์ฌ ์ฉ๋(ํ ๋น๋ ๊ณต๊ฐ ํฌ๊ธฐ) | |
resize(n) | ํฌ๊ธฐ๋ฅผ n์ผ๋ก ์กฐ์ | |
reserve(n) | ์ฉ๋์ n ์ด์์ผ๋ก ์ฆ๊ฐ | |
empty() | ๋น์ด ์๋์ง ํ์ธ | |
shrink_to_fit() | ๋ฉ๋ชจ๋ฆฌ๋ฅผ size์ ๋ง๊ฒ ์ค์ (C++11) | |
| Element access | operator[] / at(n) | ์์ ์ ๊ทผ (at()์ ๋ฒ์ ์ฒดํฌ ํฌํจ) |
front() / back() | ์ฒซ/๋ง์ง๋ง ์์ ์ฐธ์กฐ | |
data() | ๋ด๋ถ ๋ฐฐ์ด ํฌ์ธํฐ ๋ฐํ (C++11) | |
| Modifiers | assign(...) | ๊ฐ ๋๋ ๋ฐ๋ณต์ ๊ตฌ๊ฐ์ผ๋ก ๋ชจ๋ ์์ ๊ต์ฒด |
push_back(val) / emplace_back(...) | ์์ ์ถ๊ฐ (๋ณต์ฌ / ์ง์ ์์ฑ) | |
pop_back() | ๋ง์ง๋ง ์์ ์ ๊ฑฐ | |
insert(...) / emplace(...) | ํน์ ์์น์ ์์ ์ฝ์ | |
erase(...) | ํน์ ์์น ๋๋ ๋ฒ์ ์ ๊ฑฐ | |
clear() | ๋ชจ๋ ์์ ์ ๊ฑฐ | |
swap(vector& other) | ๋ค๋ฅธ ๋ฒกํฐ์ ๊ตํ | |
| Iterators | begin() / end() | ์์/๋ ๋ฐ๋ณต์ |
rbegin() / rend() | ์ญ๋ฐฉํฅ ๋ฐ๋ณต์ | |
cbegin() / cend() | const ๋ฐ๋ณต์ (C++11) | |
crbegin() / crend() | const ์ญ๋ฐ๋ณต์ (C++11) |
| ์ฐ์ฐ์ | ์ธํฐํ์ด์ค | ์ค๋ช |
|---|---|---|
| ๋น๊ต | ==, !=, <, <=, >, >= | ์์์ ์์ ๋ฐ ๊ฐ ๋น๊ต ๊ฐ๋ฅ |
| ๋์ | operator= | ๋์ ์ฐ์ฐ์ |
| ์์ ์ ๊ทผ | operator[] | ์ธ๋ฑ์ค ๊ธฐ๋ฐ ์ ๊ทผ |
| ๋ฉค๋ฒ ํ์ | ํ์ | ์ค๋ช |
|---|---|---|
value_type | T | ์์์ ํ์ |
allocator_type | Allocator | ํ ๋น์ ํ์ |
size_type | std::size_t | ํฌ๊ธฐ ๊ด๋ จ ํ์ |
difference_type | std::ptrdiff_t | ๋ฐ๋ณต์ ๊ฐ ์ฐจ์ด ๊ณ์ฐ์ฉ ํ์ |
reference | T& | ์ฐธ์กฐ ํ์ |
const_reference | const T& | const ์ฐธ์กฐ ํ์ |
pointer | T* | ํฌ์ธํฐ ํ์ |
const_pointer | const T* | const ํฌ์ธํฐ ํ์ |
iterator | RandomAccessIterator | ๋ฐ๋ณต์ ํ์ (๋๋ค ์ ๊ทผ ์ง์) |
const_iterator | const RandomAccessIterator | const ๋ฐ๋ณต์ ํ์ |
reverse_iterator | std::reverse_iterator<iterator> | ์ญ๋ฐฉํฅ ๋ฐ๋ณต์ |
const_reverse_iterator | std::reverse_iterator<const_iterator> | const ์ญ๋ฐฉํฅ ๋ฐ๋ณต์ |

v.begin() & v.end() : ๋ฐ๋ณต์
v.front() & v.back() : ์์ ์ฐธ์กฐ

๊ธฐ๋ณธ ์ฌ์ด์ฆ๋ฅผ ํ ๋นํ๊ณ push_back()์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ๋ฃ์ผ๋ฉด ์ด์ ์ฌ์ด์ฆ ์ก์ ๊ฒ๊ณผ ๋ณ๊ฐ๋ก ๋ค์ด๊ฐ๋ค
โก ๋ง์ฝ ์ฌ์ด์ฆ๋ฅผ 3์ผ๋ก ์ก๊ณ ๊ทธ 3๊ฐ์ ์์ ๊ฐ์ ๋ฐ๊พธ๊ณ ์ถ๋ค๋ฉด v[i]๋ก ์์๋ฅผ ์ฐธ์กฐํ์ฌ ๊ฐ์ ๋ฐ๊ฟ์ผํ๋ค
โก ์๋์ ์ฝ๋์์ 0์ผ๋ก ์ด๊ธฐํํ 3๊ฐ์ ๋ฐ์ดํฐ์ push_back()์ผ๋ก ๋ฃ์ ๋ฐ์ดํฐ๋ ๋ณ๊ฐ!!

insert()๋ ์ํ๋ ์์น์ ์์๋ฅผ ์ฝ์
ํ ์ ์๋ ๋ฉค๋ฒ ํจ์์ด๋ค.
โก ๋งค๊ฐ๋ณ์๋ก ๋ค์ด๊ฐ๋ ์ํ๋ ์์น๋ ๊ผญ ๋ฐ๋ณต์ ํ์
์ผ๋ก๋ง ๋ฃ์ ์ ์๋ค.
์ํ๋ ์์น iter : ๋ฐ๋ณต์๋ฅผ ์ฌ์ฉํ๋ค
โก ์ผ๋ฐ์ ์ธ ์์ ์ฝ์
(์ํ๋ ์์น, ๊ฐฏ์, ์ฝ์
ํ ์์)

์ธ์๋ฅผ 2๊ฐ ๋ฃ์ด ์ํ๋ ๊ตฌ๊ฐ์ ์ฌ์ฉํ ์๋ ์๋ค.
โก ์ํ๋ ์์น์ ๊ตฌ๊ฐ์ ์ฌ์ฉํ์ฌ ์์๋ฅผ ์ฝ์
ํ๋ ๋ฐฉ๋ฒ (์ํ๋ ์์น, ๊ตฌ๊ฐ ๋ฒ์)

โก ์ํ์ค ์ปจํ
์ด๋์ด๋ฉฐ ๋ฐฐ์ด ๊ธฐ๋ฐ ์ปจํ
์ด๋. ๋ฒกํฐ์ ์ ์ฌํ ํน์ง์ ๊ฐ์ง๋ฉด ์์ ์ ๊ทผ ๋ฐ๋ณต์๋ฅผ ์ง์ํ๋ค.
โก ํ์๋ ์ ์ฌํ๋ฉฐ ์ ๋ค๋ก ์์๋ฅผ ์ถ๊ฐ, ์ ๊ฑฐ ํ ์ ์๋ค.
์, ๋ค ์์ ์ถ๊ฐ
โก ๋ฒกํฐ๋ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๋ธ๋ก์ด๊ธฐ ๋๋ฌธ์ ์ธ๋ฑ์ค ์ ๊ทผ์ด ๋น ๋ฆ
โก ๋ฑ๋ ์ธ๋ฑ์ค ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ์ฐ์์ ์ด์ง ์๊ณ ๊ฐ๊ฐ์ ์์ ๋ธ๋ก๋ค๋ก ์ฐ๊ฒฐ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ฒกํฐ์ ๋นํด ๋๋ฆผ

โก ๋ฑ์ ์ ๋ค๋ก ์์ ์ฝ์
/ ์ญ์ ๊ฐ ๊ฐ๋ฅํ์ง๋ง ๋ฒกํฐ๋ ๋ค๋ก๋ง ์์ ์ฝ์
/ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
โก โ
ํ์ง๋ง, ๋ฒกํฐ๋ ์ฐ์์ ์ธ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ฐ์ง๊ณ ์์ด ์์ ์ ๊ทผ(์ธ๋ฑ์ค ์ ๊ทผ)์ด ๋งค์ฐ ๋น ๋ฅด๋ค.
โก โ
๋ฑ๋ ์์ ์ ๊ทผ์ด ๊ฐ๋ฅํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ด ์์ ๋ธ๋ก๋จ์๋ก ์ฐ๊ฒฐ๋์ด ์ฐ์์ ์ธ ๊ฒ ์ฒ๋ผ ๋ณด์ด๋ง ๋์ด์๊ธฐ ๋๋ฌธ์ ๋ฒกํฐ์ ๋นํด์๋ ๋๋ฆฌ๋ค.