Computer >> Máy Tính >  >> Lập trình >> C ++

Sự khác biệt giữa std ::vector và std ::array trong C ++

Sau đây là sự khác biệt giữa vectơ và mảng -

  • Vectơ là một vùng chứa tuần tự để lưu trữ các phần tử và không dựa trên chỉ mục.
  • Mảng lưu trữ một tập hợp tuần tự có kích thước cố định của các phần tử cùng loại và nó dựa trên chỉ mục.
  • Bản chất vectơ là động, vì vậy, kích thước sẽ tăng khi chèn các phần tử.
  • Vì mảng có kích thước cố định nên không thể thay đổi kích thước khi đã khởi tạo.
  • Vectơ chiếm nhiều bộ nhớ hơn.
  • Mảng là cấu trúc dữ liệu hiệu quả về bộ nhớ.
  • Vector mất nhiều thời gian hơn trong việc truy cập các phần tử.
  • Các phần tử truy cập mảng trong thời gian không đổi bất kể vị trí của chúng vì các phần tử được sắp xếp theo cách phân bổ bộ nhớ liền kề.

Vectơ và mảng có thể được khai báo theo cú pháp sau -

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};

std ::vector:

Mã mẫu

#include <iostream>
#include <vector>
using namespace std;
int main() {
   vector<vector<int>>v{ { 4, 5, 3 }, { 2, 7, 6 }, { 3, 2, 1 ,10 } };
   cout<<"the 2D vector is:"<<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;
}

Đầu ra

the 2D vector is:
4 5 3
2 7 6
3 2 1 10

std ::array:

Mã mẫu

#include<iostream>
#include<array>
using namespace std;

int main() {
   array<int,4>a = {10, 20, 30, 40};
   cout << "The size of array is : ";
   //size of the array using size()
   cout << a.size() << endl;
   //maximum no of elements of the array
   cout << "Maximum number of elements array can hold is : ";
   cout << a.max_size() << endl;
   // Printing array elements using at()
   cout << "The array elements are (using at()) : ";
   for ( int i=0; i<4; i++)
      cout << a.at(i) << " ";
      cout << endl;
      // Filling array with 1
      a.fill(1);
      // Displaying array after filling
      cout << "Array after filling operation is : ";
   for ( int i=0; i<4; i++)
      cout << a[i] << " ";
      return 0;
}

Đầu ra

The size of array is : 4
Maximum number of elements array can hold is : 4
The array elements are (using at()) : 10 20 30 40
Array after filling operation is : 1 1 1 1