해당 벡터 요소의 account_name에 따라 listAccounts에서 벡터 요소를 제거하는 함수를 작성하려고합니다. 나는이 쓴 :반복자를 사용하여 객체 유형의 벡터 요소 제거하기 C++
void Account::remove_account(string name) {
auto iter = listAccounts.begin();
for (; iter != listAccounts.end(); iter++) {
if ((*iter).account_name == name) {
listAccounts.erase(iter);
}
}
}
하지만 나는 그것이 내가이 액세스 할 수없는 메모리에 접근하려한다는 것을 의미 이해하는 것과 벡터 제거에서 세그먼트 오류를 받고 있어요,하지만 난 잘 모르겠어요 이것을 정확하게 쓰는 법.
하나의 요소 또는 주어진 값의 모든 요소 만 제거 하시겠습니까? –
중복은 첫 번째 지우기 후에 for 루프가 유효하지 않게 된 것을 설명합니다. if 문에는'break;'가 필요하다. –
@Vlad from Moscow name.name과 동일한 account.name을 가진 벡터의 한 요소. –