2015년 5월 21일 목요일

[Grind Away] vector 에서 iterator를 통한 반복 도중 요소 삭제 (vector/iterator/element/erase/delete)

C++ · 2015/05/21

vector에서 iterator를 통해 조회하다가 특정 요소를 삭제시키고 싶을 때 아래와 같이 하시면 됩니다.

#include <iostream> 1 #include <vector> 2 using namespace std; 3 int main(void){ 4 vector<int> v; 5 v.push_back(1); 6 v.push_back(2); 7 v.push_back(3); 8 v.push_back(4); 9 v.push_back(5); 10 for (vector<int>::iterator iter = v.begin(); iter == v.end();){ // 여기서 11 // iter++ 를 하지 않는다. 12 if (*iter == 3){ 13 iter = v.erase(iter); // erase함수는 해당 요소를 제거하고 14 // 그 다음 요소의 iter를 반환 15 } else { 16 iter++; // 제거하지 않을 때는 그냥 증가 17 } 18 } 19 return 0; 20 } Colored by Color Scripter cs

#Cpp #C언어 #객체지향 #개발자

댓글 없음:

댓글 쓰기