gpt4 book ai didi

c++为什么数组没有长度属性

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

假设我们有一个数组

int arr[3];

在C++11中我们可以做到

end(arr);

获取arr的边界。

sizeof(arr)/sizeof(arr[0])

可以获取数组的大小。

其实我是Java的,C++的新手,有某事很直观。像 arr.length,但为什么 C++ 没有这个好功能呢?使用外部函数来获取数组的大小是很奇怪的。(而且结束函数甚至是在C++11之后添加的,在那之前事情更麻烦)我猜它有某事。要在数组后面实现,必须有一些边界标记,就像字符串末尾的'\0'。那为什么不更进一步呢?喜欢 arr.length?

最佳答案

C++ 语言数组没有内置的大小方法,因为它们是从 C 继承的,通常只提供 C 赋予它们的行为。 C++17 提供了一个非成员 std::size 函数,它可以计算数组的大小(实际上是任何大小的容器)。

It's quite weird to use an outside function to get the size of an array.

并非 C++ 中的所有内容都是成员函数。最好现在就习惯。

关于c++为什么数组没有长度属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51001777/

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