gpt4 book ai didi

c++ - 对于具有默认分配器的标准容器,std::container::size_type 是否保证为 size_t?

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:27:12 25 4
gpt4 key购买 nike

喜欢:

  • std::string<T>::size_type
  • std::list<T>::size_type
  • std::map<T>::size_type
  • std::vector<T>::size_type
  • 等等

两者都是cplusplus.comcppreference.com说他们通常是size_t ,但它们是否真正、明确地保证size_t 的标准除非使用自定义分配器?

最佳答案

对于 STL 容器 - 不。 [container.requirements.general] 中标准的表 96,其中列出了任何容器的容器要求 X ,解释得很清楚:

enter image description here


但是,对于 basic_string , size_type定义为

typedef typename allocator_traits<Allocator>::size_type size_type;

这又将是 size_t对于 std::allocator<..>作为分配器。

此外,std::array使用 size_t作为size_type ,根据 [array.overview]/3。

关于c++ - 对于具有默认分配器的标准容器,std::container::size_type 是否保证为 size_t?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26433802/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com