vector에 저장된 videoObjects의 Z- 인덱스 순서 재 지정을 수행하려고합니다. 계획은 vector의 첫 번째 위치에 놓일 videoObject을 식별하고, 지우고 첫 번째 위치에 삽입하는 것입니다. 아쉽게도 erase() 함수는 항상 잘못된 메모리 액세스를 발생시킵니다. testApp.h : vector<videoObject> videoObj
최근에 주로 C++로 작성된 프로젝트를 상속 했으므로 이번이 처음입니다. 벡터의 요소가 벡터의 begin() 및 end()에 묶여있는 루프 내에서 벡터의 요소를 지우는 데 문제가 있을지 궁금합니다. 은 여기 (기본적으로) 내가 어떻게 노력했는지 : for (vector<double>::iterator i = distance.begin(); i < dista
아래 "삭제"문은 객체를 "이중으로 해제"합니까? erase() 문 위의 객체의 소멸자를 호출해야하고 이미 해제하기 때문에 (...object_list is a global vector<object*>...)
vector< object * >::iterator it, eit, iter;
object *p_object;
vector< object *
Scott Meyers "Effective STL”에서 erase-remove idiom (항목 32)을 읽었을 때이 질문을 받았습니다. vector<int> v;
...
v.erase(remove(v.begin(), v.end(), 99), v.end());
remove은 기본적으로 범위의 "새 논리 끝"에서 시작하고 범위의 실제 끝에서 삭제하는