2012-10-06 3 views
0

std::iterator<std::random_access_iterator_tag, const char*>을 char 배열에 대한 반복자로 사용할 수 있습니까? std::iterator 정의를 보면 기본 생성자, 복사 및 이동 생성자 만 있고 T 생성자는 없습니다. 이것은 내 자신의 반복자를 상속 받아 구현해야한다는 것을 의미합니까?char 배열에 대한 랜덤 액세스 반복자

+1

'const char *'는 이미 iterator (또는 const_iterator)이므로, 실제로 거기에 도달하기 위해 상속 할 필요가 없습니다. 'std :: iterator'는 다른 반복자 클래스를 빌드 할 때 기본 클래스로 사용될 수 있지만 반드시 필요한 것은 아닙니다. –

답변

4

std::iterator 당신을 도울 수 없습니다. 자신 만의 iterator를 구현하기 위해 상속받을 수는 있지만 이미 배열에 대한 포인터를 무작위 액세스 반복자로 사용할 수 있습니다.

이터레이터를 사용하려면 std::beginstd::end을 사용할 수도 있습니다.

+0

std :: array 대신 const char * 및 std :: size_t를 사용하면 어떨까요? – Graeme

+1

@Graeme 그런 경우 범위로'[p, p + size] '를 찾고 있다고 생각합니다. 이것은'p'와'size'가 올바른 값에 의존합니다. –

관련 문제