2016-07-09 8 views
2

에서 반복자 (const가 아닌)로 호출 C++ (11) (하나가 반복자로했다 이상) 첫 번째 인수 const_iterator으로 std::vector::erase 가져 : 당신이 볼 수 있듯이지우기 const_iterator를를 얻을 수 있지만,

http://www.cplusplus.com/reference/vector/vector/erase/

그러나 이 예제는 cbegin과 함께 사용하지 않습니다. 대신 begin과 함께 사용됩니다. const_iteratoriterator 사이에 암시 적 변환이 있습니까?

+0

'iterator'에서 'const_iterator'로의 암시 적 변환이 있지만 일반적으로 반대는 아닙니다. –

+0

이야기의 도덕 : 신뢰할 수있는 참조 문서를 사용하십시오. –

답변

3

containers에 대한 요구 사항은 iterator 유형을 const_iterator으로 암시 적으로 변환 할 수 있어야한다는 것입니다.

참조 : http://en.cppreference.com/w/cpp/concept/Container

그래서, 다음과 같이 작동합니다 : 표준 컨테이너의

std::vector<int> v; 
..... 
std::vector<int>::const_iterator cit = v.begin(); 
관련 문제