2013-10-29 1 views
2

컨테이너 안에 반복자의 위치를 ​​결정하는 방법이 있습니까? 내가 찾고있는 "위치"는 반복자가 컨테이너의 시작 부분에서 얼마나 멀리 떨어져 있는지를 나타내는 정수 값의 형태를 취합니다. 예를 들어 반복자를 스칼라 색인으로 변환 하시겠습니까?

, vector.front()0 것, 그리고 vector.back()vector.size() - 1

답변

11

std::distance 것 :

는 무대 뒤에서 무엇을
size_t index = std::distance(vector.begin(), it); 

그냥 it - v.begin() (예 : 벡터의 같은 임의 접근 반복자에 대한)입니다. 그렇지 않으면 두 번째 인수에 도달 할 때까지 첫 번째 인수를 증가시킵니다 (특히 효율적이지는 않습니다).

관련 문제