两个数组声明之间的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;