본문 바로가기

Vector2

[C++]STL Container 조합하기 STL 에서 하나의 Container를 선택하는 방법은 간단합니다. vector – 맨 뒤에만 추가할 경우 순차 검색에 유리 dequeue – 앞 뒤로 추가할 경우 및 순차 검색에 유리 map – 검색이 필요할 경우 유리 list – 데이터의 삽입과 삭제가 빈번할 경우 유리 … 와 같은 식으로 간단하게 선택할 수 있습니다. 하지만, 가끔가다 보면 위에 Container 의 특징을 하나 이상 만족해야 할 경우가 있습니다. 특히 검색도 빨라야 하면서, 초기에 주어진 순서를 그대로 유지해야 하는 경우가 그렇습니다.간단하게 생각하면 map 와 vector 를 같이 사용하면 되지 않나 싶은데요 몇 가지 고려해야 할 경우가 있습니다. 우선 설명을 더 진행하기 전에 예제에서 사용할 간단한 더미 구조체를 하나 선언하겠.. 2007. 11. 12.
STL iteraotor 사용 예제 1. vector, deque, list 에서의 erase 사용 예: erase() 할 경우 erase 의 리턴값에 pos 이 있으므로 이 값을 기준으로 다음 pos 을 구하면 됩니다 deque::iterator pos = begin(); while (pos != end()) { if (pos->m_nKey == nID) { pos = erase(pos); } else pos++; } 2. set, map 에서의 erase 방법 map 의 erase 는 vector 에서 처럼 pos 를 리턴하지 않기 때문에 아래처럼 좀 복잡한 방법을 써야 합니다. for (pos = map.begin(); pos != map.end(); ) { if (pos->second == value) map.erase(pos++).. 2007. 3. 26.