'size_t'대 'container :: size_type'
사이에 차이가인가 size_t
하고 container::size_type
?
내가 이해하는 size_t
것은 더 일반적이며 모든 size_type
s에 사용할 수 있습니다 .
하지만 container::size_type
특정 종류의 컨테이너에 최적화되어 있습니까?
표준 컨테이너 는 일반적으로 for (또는 호환 가능한 유형) size_type
로 정의되는 Allocator::size_type
(Allocator는 템플릿 매개 변수)에 대한 typedef로 정의합니다 . 따라서 표준 사례의 경우 동일합니다.std::allocator<T>::size_type
size_t
그러나 사용자 지정 할당자를 사용하는 경우 다른 기본 유형을 사용할 수 있습니다. 따라서 container::size_type
최대 보편성을 위해 바람직합니다.
size_t
객체의 크기에 사용되는 유형으로 정의되며 플랫폼에 따라 다릅니다 .container::size_type
컨테이너의 요소 수에 사용되는 유형이며 컨테이너에 따라 다릅니다 .
모든 std
컨테이너는 size_t
으로 사용 size_type
되지만 각 독립 라이브러리 공급 업체는 해당 컨테이너에 적합한 유형을 선택합니다.
qt 를 보면 size_type
Qt 컨테이너가 버전에 따라 다르다는 것을 알 수 있습니다. Qt3에서는 였고 unsigned int
Qt4에서는 int
.
들면 std::[w]string
, std::[w]string::size_type
동일한에 std::allocator<T>::size_type
상기와 동일하다 std::size_t
. 다른 컨테이너의 경우 일부 구현 정의 부호없는 정수 유형입니다.
때로는 정확한 유형을 갖는 것이 유용합니다. 예를 들어 유형이 (like, to UINT_MAX
)로 둘러싸 이는 위치를 알고 있으므로이를 사용할 수 있습니다. 또는 실제로 함수 / 클래스 템플릿에 두 개의 동일한 유형을 전달해야하는 템플릿의 경우.
size_t
어쨌든 간결하거나 반복자를 사용 하는 경우가 종종 있습니다. 일반 코드에서는 일반적으로 템플릿이 사용되는 컨테이너 인스턴스와 해당 컨테이너의 크기를 모르기 Container::size_type
때문에 컨테이너 크기를 저장해야하는 경우 typedef 를 사용해야합니다 .
참고 URL : https://stackoverflow.com/questions/918567/size-t-vs-containersize-type
'program story' 카테고리의 다른 글
내가 할 수 없어야하는데 왜 TypeScript 개인 멤버에 액세스 할 수 있습니까? (0) | 2020.08.22 |
---|---|
CSS Z- 인덱스 역설 꽃 (0) | 2020.08.22 |
docker-compose up과 docker-compose start의 차이점은 무엇입니까? (0) | 2020.08.22 |
Express : 앱 인스턴스를 다른 파일의 경로로 전달하는 방법은 무엇입니까? (0) | 2020.08.21 |
힘내 '심각 : 새 색인 파일을 쓸 수 없습니다' (0) | 2020.08.21 |