数组大小确定 C++17

Cod*_*ity -3 c++ c++17

我正在尝试使用该std::size()函数确定数组的大小,但我的编译器带来了此错误:

/root/Desktop/practise.cpp:9:34: 错误:“size”不是“std”的成员;你的意思是“size_t”?

这是第一个代码:

#include <iostream>
#include <array>

using namespace std;

int main()
{

    int values [] {2,3,4,5,6,7,8,9,10};

    cout <<"The array size is:"<< std::size(values);


    return 0;
}
Run Code Online (Sandbox Code Playgroud)

在改变语句std::size(values)std::size_t(values),似乎并不准确弹出一个庞大的数字。输出的值为:

140725039324624

rem*_*s4e 7

要使用std::size,您需要包含<iterator>标题。

通过std::size_t改用,(它是一种类型,而不是函数),然后您执行函数式转换,它将数组第一个元素的内存地址(指针)作为整数返回,因此您的值不连贯眼睛。

  • @Code_Infinity • C 风格的强制转换和函数式强制转换都是危险的。当需要强制转换时,请使用 static_cast、dynamic_cast、reinterpret_cast 或 const_cast。有时铸造是不可避免的。但要尽可能地从一开始就避免必要的演员阵容,并且不要采取漫不经心的演员阵容。 (2认同)