티스토리 뷰
Vector : 길이 변경 가능한 배열
vector<int> v; // 길이 0 벡터
vector<int> v(10); // 길이 10 벡터
vector<int> v(15, 1); // 길이 15, 초기값 1 벡터
vector<int> v = {1, 2, 3, 4};
v.push_back(), v.pop_back(), v.clear(), v.resize(), v.size(), v.empty(), v.clear(), v.front(), v.back()
vector<int> v = {1, 2, 3, 4, 5};
v.push_back(6); // 1, 2, 3, 4, 5, 6
v.pop_back(); // 1, 2, 3, 4, 5
v.clear(); //
v.resize(5); // 0, 0, 0, 0, 0
vector<int> v = { 1, 2, 3};
cout << v.size(); // 3
cout << v.empty(); // 0 (false)
v.clear();
cout<< v.empty(); // 1 (true)
vector<int> v = {1, 2, 3};
cout << v.front(); // 1
cout << v[1]; // 2
cout << v.back(); // 3
iterator : 반복자, vector의 요소 가르킴
vector<int> v = {1, 2, 3, 4};
for(vector<int>::iterator it = v.begin(); it != v.end(); ++it) {
cout << *it << ' ';
} // 1 2 3 4 5
// vector<int>::iterator 라고 명시하지 않고 auto로 씀
for(auto it = v.begin(); it != v.end(); ++it)
{
cout << *it << ' ';
} // 1 2 3 4 5
iterator 이용한 값 삽입
vector<int> a = {1,2,3};
auto it = a.begin();
a.insert(it, 4); // 1 2 3 4
it = a.begin() + 2;
a.inert(it, 3, 0); // 1 2 0 0 0 4
it = a.begin() + 1;
vector<int> v2 = {9, 9};
a.insert(it, v2.begin(), v2.end()); // 1 9 9 2 0 0 0 4
a.erase(a.begin()); // 9 9 2 0 0 0 4
// 주의) 이 경우 a.begin()부터 a.begin()+2의 전까지 지워짐
a.erase(a.begin(), a.begin()+2); // 2 0 0 0 4
deque : front와 back 모두 삽입 삭제 가능한 queue의 한 종류
#include <deque>
deque<int> d;
d.push_back(1); // 1
d.push_front(2); // 2 1
d.push_back(3); // 2 1 3
d.pop_back(); // 2 1
d.pop_front(); // 1
list : 각각의 요소가 연결되있는 자료구조
array, vector, deque는 데이터 삽입 삭제 시, 모든 데이터를 이동 시키므로 재정렬로 인해 O(N).
list는 각각의 요소가 연결되 있으므로 (linked list) 변경 부분만 변경 하면 되므로 O(1).
#include <list>
list<int> l = {-1, 2, -3, 4 };
l.sort(); // -3 -1 2 4
l.sort(greater<int>()); // 4 2 -1 -3
l.reverse(); // -3 -1 2 4
'노트' 카테고리의 다른 글
c++ 배열의 음수 인덱스 (0) | 2021.03.09 |
---|---|
c++) map.find (0) | 2021.02.18 |
c# base 키워드 (0) | 2020.11.19 |
abstract (0) | 2020.11.15 |
java, 문자열로 받아서 char 배열에 저장 (0) | 2020.08.25 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- DP
- Stack
- 이분탐색
- graph
- permutation
- Python
- C++
- recursion
- two pointer
- Dijkstra
- binary search
- MVC
- CSS
- 자료구조
- Implementation
- Tree
- dfs
- C
- BFS
- Brute Force
- priority queue
- Unity
- Spring
- back tracking
- Kruskal
- db
- greedy
- 조합
- 재귀
- floyd warshall
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
글 보관함