Angew made a comment 원시 포인터를 반복자 형식으로 사용하는 vector
이 괜찮 았다고합니다. 그 정도는 나를 위해 루프를 던졌다.포인터를 컨테이너 반복자로 사용합니까?
나는 그것을 연구 시작 vector
반복자에 대한 요구 사항이 포인터 자격이 있음을 그들은 그것을 명시 적으로 언급되는 "Random Access Iterators" 만 있다는 것을 발견했다 :
포인터를 배열을 만족하는 모든 요구 사항
의 요소에
컴파일러가 디버거 용으로 vector
에 반복기를 제공하는 유일한 이유는 아니면 실제로 내가 놓친 요구 사항입니까? vector
?
표준 라이브러리의 나머지 부분과 일관성이 더 높습니다. ({}}} {{{}} {template} {template} {template} {template} {template} {template} 이런 식으로'iterator','begin','end'를 제공하는 한 당신이 사용하는 컨테이너의 타입을 신경 쓰지 않습니다. – 0x5453
@ 0x5453 당신이하는 말을 이해할 수 없습니까? 분명히 컨테이너는 반복자를 반환해야합니다. 난 그냥 원시 포인터를 반환 합리적이라고 생각하지 않았다. 당신은 그 진술이나 다른 것을 언급하고 있습니까? –
까다로운 부분은'std :: vector :: iterator'의 ADL 관련 네임 스페이스입니다. 포인터는'std'를 관련 네임 스페이스로 가지고 있지 않습니다. 표준에서는 iterator가 관련 네임 스페이스로'std'를 가질 것을 요구하지 않는다. –
MSalters