Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/128.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
两个数组声明之间的C++差异_C++ - Fatal编程技术网

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

两个数组声明之间的C++差异,c++,C++,我知道这是非常基本的,但是有人介意解释一下这两个数组声明之间的区别吗: #include <array> array<int, 5> myints; …以及为什么myints.size与第一个声明一起工作,而与第二个声明不一起工作。数组是一个类标准stl容器,它包含了许多方法和函数,您希望将这些方法和函数应用于更标准的静态数组 还要看一下std::vector。另见 有关如何使用数组和向量的信息 特别是向量更适合动态内存分配,而int-myints[5]声明称为静态分配

我知道这是非常基本的,但是有人介意解释一下这两个数组声明之间的区别吗:

#include <array>
array<int, 5> myints;
…以及为什么myints.size与第一个声明一起工作,而与第二个声明不一起工作。

数组是一个类标准stl容器,它包含了许多方法和函数,您希望将这些方法和函数应用于更标准的静态数组

还要看一下std::vector。另见 有关如何使用数组和向量的信息

特别是向量更适合动态内存分配,而int-myints[5]声明称为静态分配,并且在可以分配的内存方面有一些很大的限制。

int-myints[5];给你一个5整数的数组。此数组类型是一种语言功能。它给出的对象在内存中基本上是相邻的5个整数。此数组类型不是类类型,因此没有成员函数

std::数组myints;为您提供一个std::array对象。数组是标准库中的一种类类型,因此可能具有成员函数,例如成员函数大小。该类封装了一个固定大小的数组,并提供了一个很好的接口

int myints[5];
这是一个由五个整数组成的数组。 它是C语言和C++语言的基本结构。 内置类型上没有成员函数

std::array<int, 5> myints;
这是标准库类std::array的一个实例 它本身就是标准库类模板std::array的实例。 它是基本数组的包装器,为方便起见提供了诸如size之类的实用程序成员函数。

在第一个声明中 数组myints; 这里myins是array类的一个对象,它是c数组上的一个薄包装器。这个类有一个size函数,它将返回大小。 第二个声明是一个c风格的数组。这不是一个类或结构。

请自行获取。NITPox:STD::数组是C++标准库容器,不是STL容器,不是类。如果您查看,您将看到它没有数组容器,也没有数组类。
std::array<int, 5> myints;