C++ 中 std::vector 和 std::array 的区别

以下是向量和数组之间的区别 -

  • Vector 是一个顺序容器,用于存储元素而不是基于索引。

  • 数组存储相同类型元素的固定大小顺序集合,它是基于索引的。

  • Vector 本质上是动态的,因此大小会随着元素的插入而增加。

  • 由于数组是固定大小,一旦初始化就不能调整大小。

  • 矢量占用更多内存。

  • 数组是内存高效的数据结构。

  • Vector 需要更多时间来访问元素。

  • 数组在恒定时间内访问元素,而不管它们的位置如何,因为元素排列在连续的内存分配中。

可以使用以下语法声明向量和数组 -

Vector declaration:vector<datatype>array name;

Array declaration:type array_name[array_size];

Vector initialization:vector<datatype>array name={values};

Array initialization:datatype arrayname[arraysize] = {values};

标准::向量:

示例代码

#include <iostream>

#include <vector>

using namespace std;

int main() {

   vector<vector<int>>v{ { 4, 5, 3 }, { 2, 7, 6 }, { 3, 2, 1 ,10 } };

   cout<<"t二维向量是:"<<endl;

   for (int i = 0; i < v.size(); i++) {

      for (int j = 0; j < v[i].size(); j++)

         cout << v[i][j] << " ";

         cout << endl;

   }

   return 0;

}

输出结果
t二维向量是:

4 5 3

2 7 6

3 2 1 10

标准::数组:

示例代码

#include<iostream>

#include<array>

using namespace std;

int main() {

   array<int,4>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

以上是 C++ 中 std::vector 和 std::array 的区别 的全部内容, 来源链接: utcz.com/z/311390.html

回到顶部