gpt4 book ai didi

c++ - 我应该如何在恒定长度的 STL 样式数据结构中实现 max_size?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:59:53 25 4
gpt4 key购买 nike

假设我实现了一个类似于动态数组的常量数据结构。即,我给数据结构一个长度 l在构造函数中。然后,该数据结构的实例将永远无法容纳比 l 更多的元素。 .我希望该数据结构具有尽可能接近 STL 的接口(interface)。

我应该如何实现 max_size这个类的方法?应该是容量l在构造函数中给出?或者应该是 std::numeric_limits<size_type>::max()

此方法的文档说:

Returns the maximum number of elements the container is able to hold due to system or library implementation limitations, i.e. std::distance(begin(), end()) for the largest container.

这个文档读起来好像是针对最大容器的,所以应该是后一种定义。但是,此方法是一种非静态方法,暗示它应该返回有关数据结构当前实例的信息,而不是对该数据结构的另一个实例可以获得多大的一般限制。

那么 max_size 的语义是什么? ?此实例的最大值或假设的“最大”实例的最大值?

最佳答案

你的容器让我想起了某种动态 std::array .

std::array::max_size() 具有您之前定义的语义(当前实例的最大大小):

Because each std::array<T, N> is a fixed-size container, the value returned by max_size equals N (which is also the value returned by size).

关于c++ - 我应该如何在恒定长度的 STL 样式数据结构中实现 max_size?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44586728/

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