加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c 11 – std :: array成员函数empty(),max_size() – 没用但是为

发布时间:2020-12-16 10:09:30 所属栏目:百科 来源:网络整理
导读:这些成员函数是否像它们看似无用而存在只是为了提供与其他容器的一致性? 例如: std::arrayint,4 array1; // size of 4 (but no elements initialized)std::arrayint,0 array2; // size of zero.array1.empty(); // false - not empty even though no eleme
这些成员函数是否像它们看似无用而存在只是为了提供与其他容器的一致性?

例如:

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

this question的答案处理零“大小”参数和sizeof()的非零返回,即,即使在空的情况下也会占用空间.但那不是我要问的.

解决方法

是的,它们只是为了保持一致性,允许更容易的模板专业化. 关于std :: array< int,4>的评论从没有元素开始是错误的:它是一个装扮过程[4],现在和永远. 除此之外,根据标准,大多数派生的C对象都不会小于1.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读