왜 std::initializer_list<T>::iterator
은 random_access_iterator
개념 대신 네이 키드 포인터 T const*
으로 정의 되었습니까?initializer_list 반복자 정의의 선택
3
A
답변
5
이유는 표준
섹션 18.9
형 initializer_list의 목적은 유형 CONST E. [참고 객체들의 어레이에 대한 액세스를 제공로부터이 작은 TID 비트로부터 아마 : 한 쌍의 포인터 또는 포인터 + 길이는 initializer_list에 대한 명백한 표현입니다. initializer_list는 8.5.4에서 지정된 과 같이 초기화 프로그램 목록을 구현하는 데 사용됩니다. 이니셜 라이저 목록을 복사해도 기본 요소 인 요소는 복사되지 않습니다. -end 노트]
이 나타냅니다 자신의 반복자는 "랜덤 액세스 반복자"유형에 랩을 직접 포인터가 아니라 왜 아마 인, 포인터의 의미가 아닌 값의 의미를해야합니다 복사 initializer_lists.
AFAIK 이것은 값 의미와 반대되는 포인터 의미론을 갖기 위해 유일한 표준 "컨테이너"입니다 (여기에 인용 부호가 있음).
관련 문제
- 1. 벡터지도에서 initializer_list 사용
- 2. 표준 : 생성자에서 initializer_list 변환
- 3. 템플릿 함수에서 initializer_list 사용
- 4. C++ Initializer_List into Pointer
- 5. 비트 세트가있는 initializer_list 사용
- 6. visual studio 2012의 initializer_list
- 7. 메모리 손상 :: initializer_list
- 8. C++ 11 initializer_list 오류
- 9. 생성자 및 initializer_list
- 10. 반복자
- 11. 반복자
- 12. UrlProperty 나는 정의의 UserControl을
- 13. std :: initializer_list as function arguments
- 14. initializer_list 컨테이너를 변경할 수 있습니까?
- 15. 반복자 오류 내 벡터 반복자
- 16. 자바, 반복자 반복자 또는 대기열
- 17. 외부 반복자 대 내부 반복자
- 18. 오류 방지 반복자 및 약하게 일관성있는 반복자
- 19. const 반복자 및 비 const 반복자 만들기
- 20. JSP 반복기 구문, 다른 반복자 내 반복자
- 21. 삽입 반복자
- 22. 는 반복자
- 23. 반복자 산술
- 24. 벡터 반복자
- 25. Java : 반복자
- 26. 전달 반복자
- 27. 반복자 산술
- 28. 반복자 단점
- 29. 반복자 루핑
- 30. 반복자 문제
포인터는 임의 액세스 반복자입니다. 나는 표준이'initializer_list'에 대해 무엇을 말하는지 알지 못한다. (표준을 따르는 모습이다.) 그러나 컨테이너의 반복자가 포인터가 될 수있다. – chris
@chris - 물론 다른 모든 표준 컨테이너와 다른 점은 궁금합니다. –
처음에는 컨테이너가 아닙니다. 아마도 단순함이 한 요인이었을 것입니다. 나는 확실히 말할 수 없다. – chris