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

Ưu điểm của vector trên mảng trong C ++

Ở đây chúng ta sẽ thấy một số ưu điểm và nhược điểm của vector over array trong C ++.

  • Vectơ là lớp mẫu. Đây là cấu trúc chỉ C ++. Mảng là cấu trúc ngôn ngữ cài sẵn. Mảng có trong các ngôn ngữ khác nhau.

  • Vectơ được triển khai dưới dạng mảng động với giao diện danh sách, mảng có thể được triển khai theo cách tĩnh hoặc động với kiểu dữ liệu nguyên thủy.

Ví dụ

#include<iostream>
#include<vector>
using namespace std;
int main() {
   int array[10]; //statically allocated array
   int* arr = new int[10]; //dynamically allocated array
   vector<int> vec;
}
  • Kích thước mảng được cố định. Khi một mảng được tạo, chúng ta không thể thay đổi kích thước. Kích thước của vectơ là động. Nếu chúng tôi thêm các yếu tố mới, nếu địa điểm không có sẵn, nó sẽ tạo ra không gian mới cho nó và một số không gian bổ sung.

  • Nếu các mảng được cấp phát động, thì chúng ta phải phân bổ nó theo cách thủ công. Nhưng trong vectơ, chúng ta không cần phải phân bổ nó, nó tự động phân bổ.

Ví dụ

#include<iostream>
#include<vector>
using namespace std;
int main() {
   int* arr = new int[10]; //dynamically allocated array
   delete(arr); //deallocate manually
   vector<int> vec; //will be deallocated when variable is out of scope
}
  • Nếu chúng ta muốn lấy kích thước của mảng được cấp phát động, chúng ta không thể lấy kích thước một cách dễ dàng. Đối với vectơ, chúng ta có thể nhận được kích thước trong thời gian không đổi.

  • Nếu chúng ta muốn gửi một mảng bằng cách sử dụng tham số hàm, thì chúng ta phải gửi một biến khác cho kích thước hoặc độ dài. Nếu chúng tôi gửi vectơ, chúng tôi không cần chuyển một số biến khác.

  • Chúng tôi không thể trả về một mảng trừ khi chúng tôi sử dụng mảng mới được cấp phát động, nhưng chúng tôi có thể trả về vectơ từ hàm.