본문 바로가기

STL4

[STL] erase 위와 같은 오류를 해결해봅시다. Expression: cannot increment value-initialized map/set iterator 이는 iterator에 문제가 생겨 증가를 할 수 없다는 것인데요.. erase() 를 알아봅시다! STL에서 컨테이너를 이용할 때, 컨테이너 안 요소를 삭제합니다. 같은 기능을 하는 remove도 있지만, 쓰임방법과 쓰임새가 조금 다르지요. 일단 큰 차이는, remove(요소)인 반면, erase(요소의 반복자) 입니다. 다음은 오류가 나는 코드 입니다. // set 안에 있는 모든 요소를 제거합니다. set c; // c 안에 1, 2, 3 등 요소가 있다고 가정합시다. for (auto iter = c.begin(); iter != c.end(); ++i.. 2019. 9. 19.
[정렬] sort 버블정렬, 선택정렬, 삽입정렬, 쉘정렬, 병합정렬, 퀵정렬, 힙정렬, 계수정렬, 기수정렬까지... 많은 정렬들을 직접 구현해봤지만, 결국 실전에서는 이것들을 일일이 구현할 순 없다. 물론, 다 외워서 할 수 있으면 정말 좋긴 할 것이다. 실전에서 만약 정렬이 필요하다면, #include sort(v.begin(), v.end()); stable_sort(v.begin(), v.end()); STL함수를 써야할 것이다. sort 여기 있는 sort함수는 introsort라는 하이브리드 기법을 썼다고 한다. 불안정한 quick sort가 아니라서 다행이다. 시간복잡도 O(NlogN)을 보장한다. stable_sort 또한 중복되는 key에서 각 key가 가진 다른 값도 정렬하고 싶을 때는 stable_sor.. 2019. 9. 2.
[STL] priority_queue 목표1: STL 중 하나인 priority_queue 를 이용하여 max heap, min heap 구현 목표2: priority_queue를 사용자 정의대로 정렬하는 방법알기, 연산자 오버로딩 기초 priority_queue란? max heap 이라는 자료구조를 배웠다면, 우선순위 큐에 대해 들어봤을 것입니다. heap은 정렬된 트리이며, max heap은 root에 트리 안에 있는 노드 중 가장 큰 값이 있습니다. 선언 #include using namespace std; priority_queue pq; 우선순위큐는 queue 라이브러리에 있고, std 네임스페이스 안에 정의되어 있습니다. 기능 #include #include using namespace std; priority_queue pq; .. 2019. 7. 21.
vector - 효율성과 편의성이 높은 array 벡터의 구현 vector는 array인데, size, clear, push_back 등을 지원해주는 효율적이며 편의성이 높은 container이다. 1.vector는 array의 기본성질을 유지한다. (maintain the primitive array) a pointer variable to the block of allocated memory, capacity, 현재 저장된 item 수 2. deep-copy 제공, operator= 제공 destructor 제공 3. resize 제공, capacity를 바꿔주는 routine을 가진다. (reserve routine~) 4. operator[] 5. size, empty, clear back, pop_back, push_back 6. nested .. 2019. 6. 24.
728x90