繁体   English   中英

如何在std :: list中的函数max_size()中计算最大大小?

[英]How is max size calculated in the function max_size() in std::list?

在std :: list中,如何在函数max_size()中计算最大大小? 现在我意识到这取决于实现,但我们假设我是制作标准库的人。 我如何确定可移植的特定类型T list的最大限制?

它几乎总是N的最大值,其中容器最多可以有N个元素。 这几乎总是指有问题的平台上无符号整数类型的最大值,除以要存储在容器中的元素类型的大小。

它通常是这样的

numeric_limits<size_type>::max();

因为这是收集所强加的唯一限制,而不是平台。 该集合只对其自身负责,因此即使它可以计算类似系统的最大内存之类的东西,它仍将仅返回它所施加的限制。

按照标准 - 这是最大容器的大小。 该函数也必须具有恒定的复杂性。

从当前的C ++标准:size_type distance(begin(),end())获取最大可能的容器

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM