List 리스트자료구조 중 Doubly Linked list를 템플릿으로 구현 된 노드 기반 컨테이너이다.STL list는 연결 리스트를 따로 만들지 않고 사용할 수 있다. 특징1. 저장할 데이터 개수가 가변적일 때 유연하다. vector, deque 같이 배열 기반이 아니라 노드 기반이라 유연하다.2. 중간에 데이터 삽입/삭제가 빠르다. 3. 배열은 랜덤 접근이 가능하나 list는 순차 접근만 가능하다. #include list l; int 자료형 list l 선언l.push_front(a) : 첫 번째 위치에 a 데이터 추가l.pop_front() : 첫 번째 위치 데이터 삭제l.push_back(a) : 마지막 위치에 a 데이터 추가l.pop_back() : 마지막 위치 데이터 삭제l.front()..
Hash_sethash 구조를 통해 정렬하지 않고 저장하여 map, set보다 더 빠른 검색속도를 가진다.hash_map과 다르게 key만 있다. 단일 검색을 할때 사용한다. #include hahs_set hs; : int 자료형 key를 가지는 hahs_set hs선언 hs.size() : 노드 개수 리턴hs.begin() : 첫 번째 원소 iteratorhs.end() : 마지막 원소 iteratorhs.find(a) : key가 a인 노드 찾아 해당 iterator 리턴, 만약 존재하지 않으면 마지막 iterator 리턴hs.insert(a) : a key 삽입hs.erase(hm.begin()) : 가장 앞 원소 삭제hs.clear() : 모든 원소 삭제hs.count(a) : key가 a인 원..
Hash_mapmap이 트리 구조를 통해 원소를 정렬하여 저장하는 것과 다르게 hash 구조를 통해 정렬하지 않고 저장하여 map, set보다 더 빠른 검색속도를 가진다.단일 검색을 할때 사용한다. #include hash_map hm; : int 자료형 key, int 자료형 value를 가지는 hash_map hm 선언 hm.size() : 노드 개수 리턴hm.begin() : 첫 번째 원소 iteratorhm.end() : 마지막 원소 iteratorhm.find(a) : key가 a인 노드 찾아 해당 iterator 리턴, 만약 존재하지 않으면 마지막 iterator 리턴hm.insert(hash_map::value_type(a,b)) : a key의 b value 삽입hm.erase(hm.beg..
Set 셋set은 map과 비슷하지만 오직 key만 있다. map과 특징이 같고 빠른 검색이 필요할때 사용한다.insert를 하게 되면 자동으로 정렬되어 저장된다. 만약, key값 중복을 원하면 multiset을 사용한다. #include set s; : int 자료형의 set s 선언 s.size() : 노드 개수 리턴s.begin() : 첫 번째 원소 iterators.end() : 마지막 원소 iterators.find(a) : key가 a인 노드 찾아 해당 iterator 리턴, 만약 존재하지 않으면 마지막 iterator 리턴s.insert(make_pair(a,b)) : a key의 b value 삽입s.erase(a) : key가 a인 원소 삭제s.clear() : 모든 원소 삭제s.coun..
Map 맵각 노드가 key와 value의 쌍으로 이루어진 red-black tree이다.key를 기준으로 정렬된 상태이기 때문에 검색, 삽입, 삭제 등의 속도가 빠르다. 주의할 점은 key가 중복이면 새로 추가하는 value값으로 덮어쓰기가 된다. 만약, key값 중복을 원하면 map말고 multimap을 사용한다. #include map처럼 key, value의 pair로 선언map m : key와 value 자료형이 int인 map m 선언 m.size() : 노드 개수 리턴m.begin() : 첫 번째 원소 iteratorm.end() : 마지막 원소 iteratorm.find(a) : key가 a인 노드 찾아 해당 iterator 리턴, 만약 존재하지 않으면 마지막 iterator 리턴m.inse..
Deque 덱Double Ended Queue 자료구조다. 즉 queue와 stack의 장점을 가져온 것이다.double linked list와 비슷하다고 생각하면 된다. 장점앞과 뒤에서 삽입, 삭제가 좋다. 리스트처럼 크기가 가변적이다.vector처럼 원소에 랜덤 접근 가능하다. 단점vector와 같이 중간에 삽입, 삭제를 위해서는 해당 위치 앞 뒤 데이터를 모두 이동해야 한다. #include deque dq : int형 deque dq 선언deque dq(n) : n개의 원소를 가진 dq 선언deque dq(n,a) : a로 초기화된 n개의 원소를 가진 dq 선언deque dq(dq2) : deque dq2를 dq에 복사 dq.assign(n,a) : a값으로 n개의 원소를 v에 할당dq.at(a)..
Pair 페어두 객체를 하나의 객체로 묶어 앞을 first, 뒤를 second라 칭한다.헤더에 존재하며 vector와 함께 많이 사용한다. pair 안에 또 pair를 넣을 수도 있다. pair만 사용하는 경우pair p; // 자료형은 마음대로 지정 가능, 서로 다르게도 가능 int n1 = 1;double n2 = 2;pair = make_pair(n1,n2); // p.first은 1, p.second는 2 pair p2; // pair안에 pair 벡터와 사용하는 경우vector v;v.push_back(make_pair(1,2)); // v[0].first는 1, v[0].second는 2 pair는 알고리즘 문제 중에 좌표 쌍을 이용하는 경우 이용하면 편리한 것 같다. 작성자 : 히더
Vector 벡터배열 기반의 컨테이너이다. 벡터를 통해 동적으로 확장 축소가 가능하며 벡터의 맨 앞, 끝에 삽입/삭제가 빠르다. 또한 함수를 통해 다양한 기능이 있으며개별 원소들에 대한 iterator, position index접근이 가능하다. 원소 중간에 삽입/삭제는 느리므로 list를 사용하는게 좋고 많은 양보다는 적은 양의 자료일때 유용하다.그리고 동적으로 되므로 메모리에 주의하여 사용하여야 한다. #include vector v : int형 vector v 선언vector v(n) : n개의 원소를 가진 v 선언vector v(n,a) : a로 초기화된 n개의 원소를 가진 v 선언vector v(v2) : vector v2를 v에 복사 v.assign(n,a) : a값으로 n개의 원소를 v에 할..
- Total
- Today
- Yesterday
- 게리맨더링 2
- 미세먼지 안녕!
- SWEA
- scanf
- 17142
- 시간 복잡도
- 새로운 게임 2
- 17779
- 삼성
- 연구소 3
- 17837
- 입출력
- 17143
- DP
- SW Expert Academy
- STL
- 트렌드
- boj
- 알고리즘
- DFS
- 17140
- 17144
- 역량 테스트
- 팁
- 이차원 배열과 연산
- 백준
- 2018 KAKAO BLIND RECRUITMENT
- hackerrank
- 2018 카카오 블라인드 채용
- string
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |