两个数组声明之间的C++差异

use*_*174 0 c++

我意识到这是非常基本的,但有人会介意解释这两个数组声明之间的区别:

#include <array>
array<int, 5> myints;
Run Code Online (Sandbox Code Playgroud)

...和:

int myints[5];
Run Code Online (Sandbox Code Playgroud)

......以及为什么myints.size()使用第一个声明而不是第二个声明.

Lig*_*ica 7

int myints[5];
Run Code Online (Sandbox Code Playgroud)

这是一个由五个整数组成的数组.
它是C和C++中的基本语言结构.
内置类型没有成员函数.

std::array<int, 5> myints;
Run Code Online (Sandbox Code Playgroud)

这是标准库 std::array<int, 5>
的实例(本身是标准库类模板 的实例std::array<T, N>).
它是基本数组的包装器,size()为方便起见提供了实用程序成员函数(例如).