티스토리 뷰

노트

c++) Container

tose33 2021. 2. 15. 23:45

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
링크
«   2025/04   »
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
글 보관함