C++ 中 std::vector 和 std::array 的区别
以下是向量和数组之间的区别-
Vector是一个顺序容器,用于存储元素而不是基于索引。
数组存储相同类型元素的固定大小顺序集合,它是基于索引的。
Vector本质上是动态的,因此大小会随着元素的插入而增加。
由于数组是固定大小,一旦初始化就不能调整大小。
矢量占用更多内存。
数组是内存高效的数据结构。
Vector需要更多时间来访问元素。
数组在恒定时间内访问元素,而不管它们的位置如何,因为元素排列在连续的内存分配中。
可以使用以下语法声明向量和数组-
Vector declaration:vectorarray name; Array declaration:type array_name[array_size]; Vector initialization:vector array name={values}; Array initialization:datatype arrayname[arraysize] = {values};
标准::向量:
示例代码
#include#include using namespace std; int main() { vector >v{ { 4, 5, 3 }, { 2, 7, 6 }, { 3, 2, 1 ,10 } }; cout<<"t二维向量是:"< 输出结果 t二维向量是: 4 5 3 2 7 6 3 2 1 10标准::数组:
示例代码
#include输出结果#include using namespace std; int main() { array a = {10, 20, 30, 40}; cout << "数组的大小是: "; //使用size()的数组大小 cout << a.size() << endl; //数组的最大元素数 cout << "数组可以容纳的最大元素数是: "; cout << a.max_size() << endl; //使用at()打印数组元素 cout << "The array elements are (using at()) : "; for ( int i=0; i<4; i++) cout << a.at(i) << " "; cout << endl; //用1填充数组 a.fill(1); //填充后显示数组 cout << "填充操作后的数组为: "; for ( int i=0; i<4; i++) cout << a[i] << " "; return 0; } 数组的大小是: 4 数组可以容纳的最大元素数是: 4 The array elements are (using at()) : 10 20 30 40 填充操作后的数组为: 1 1 1 1