를 사용하는 벡터의 요소를 삭제, 내 기능 중 하나에서내가 자동차 객체의 벡터를 const_iterator를
vector<Car> vCars
로 선언, 나는 벡터의 첫 번째 요소를 삭제해야합니다. 충분히 간단하게 들리는가? 오류를 던지고 라인 :
vCars.erase(vCars.begin());
그리고 오류 :
no matching function for call to 'std::vector<Car>::erase(std::vector<Car>::const_iterator) const'
나는 일반적으로 삭제 이해 만 const_iterator를 그것의 매개 변수에 대한 반복자를 소요하고 있지. 내가 솔루션이나 해결 방법을 지울 제거 관용구와 같은 오류를 찾고 있었지만, 내가보고있는 것으로부터, 위치별로 제거해야 할 때만 값으로 요소를 제거합니다. 간단히 말해서, 첫 번째 위치의 요소 만! (나는이 벡터에 대한 현명한 좋은 성능 아니라는 것을 알고,하지만 난 이것에 대한 벡터는 사용하는 데 필요한거야)
편집 : 상황, 통화가 포함되어있는 기능을 명확히하려면 다음과 같습니다 :
/// Removes the Car at the front of the garage without returning the instance.
void Garage::pop() const {
if (!empty()) {
vCars.erase(vCars.begin());
}
}
편집 : 이제 어디서 잘못되었는지 봅니다. const였던 메소드가 많이 있었고 pop() 메소드를 생각 나게 만들었습니다! const를 제거한 후에는 문제가 해결되었습니다. 저를 올바른 방향으로 가리켜 주셔서 감사합니다!
아래의 답변 중 하나가 문제를 해결 한 경우 그 중 하나를 수락하시는 것이 좋습니다. 이것이 바로 "감사합니다"라고 말하는 것입니다. :) – Xeo