gpt4 book ai didi

c++ - std::array 成员函数 empty()、max_size() - 无用但为了一致性?

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

这些成员函数是否像它们看起来和存在的那样无用,只是为了提供与其他容器的一致性?

例如:

std::array<int, 4> array1;  // size of 4 (but no elements initialized)
std::array<int, 0> array2; // size of zero.

array1.empty(); // false - not empty even though no elements are initialized
array2.empty(); // true - empty and no way to add elements

array1.size(); // room for four now
array1.max_size(); // room for four forever

array2.size(); // no room for anything now
array2.max_size(); // ... or ever

Why is std::array< T, 0 > not empty? ”的答案处理零“大小”参数和 sizeof() 的非零返回,即它确实占用空间,即使是空的。但这不是我要问的。

最佳答案

是的,它们只是为了保持一致性,让模板更容易特化。
还是你对 std::array<int, 4> 的评论从没有元素开始是错误的:这是一个装扮 int[4] ,现在和永远。
顺便说一句,根据标准,最派生的 C++ 对象永远不会小于 1。

关于c++ - std::array 成员函数 empty()、max_size() - 无用但为了一致性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23160277/

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