Sự khác biệt giữa mảng và vectơ trong C ++ là gì? Ví dụ về sự khác biệt có thể bao gồm thư viện, biểu tượng, khả năng, v.v.
Mảng
Mảng chứa một số phần tử cụ thể của một kiểu cụ thể. Để trình biên dịch có thể dự trữ lượng không gian cần thiết khi chương trình được biên dịch, bạn phải chỉ định kiểu và số phần tử mà mảng sẽ chứa khi nó được xác định. Trình biên dịch phải có khả năng xác định giá trị này khi chương trình được biên dịch. Khi một mảng đã được xác định, bạn sử dụng số nhận dạng cho mảng cùng với một chỉ mục để truy cập các phần tử cụ thể của mảng. Mảng [...] được lập chỉ mục bằng 0; nghĩa là, phần tử đầu tiên ở chỉ số 0. Lược đồ lập chỉ mục này biểu thị mối quan hệ chặt chẽ trong C ++ giữa con trỏ và mảng cũng như các quy tắc mà ngôn ngữ định nghĩa cho số học con trỏ.
- Tham khảo bỏ túi C ++
Véc tơ
Vectơ là một chuỗi các đối tượng có kích thước động cung cấp
operator[]
quyền truy cập ngẫu nhiên kiểu mảng . Hàm thành viênpush_back
sao chép các đối số của nó thông qua hàm tạo bản sao, thêm bản sao đó làm mục cuối cùng trong vectơ và tăng kích thước của nó lên một.pop_back
hoàn toàn ngược lại, bằng cách loại bỏ phần tử cuối cùng. Việc chèn hoặc xóa các mục khỏi phần cuối của vectơ sẽ mất thời gian không đổi được khấu hao và việc chèn hoặc xóa khỏi bất kỳ vị trí nào khác sẽ mất thời gian tuyến tính. Đây là những điều cơ bản về vectơ. Còn rất nhiều thứ khác nữa. Trong hầu hết các trường hợp, một vectơ phải là lựa chọn đầu tiên của bạn trên một mảng kiểu C. Trước hết, chúng có kích thước linh hoạt, có nghĩa là chúng có thể phát triển khi cần thiết. Bạn không cần phải thực hiện tất cả các loại nghiên cứu để tìm ra kích thước tĩnh tối ưu, như trong trường hợp của mảng C; một vectơ phát triển khi cần thiết và nó có thể được thay đổi kích thước lớn hơn hoặc nhỏ hơn theo cách thủ công nếu bạn cần. Thứ hai, vectơ cung cấp kiểm tra giới hạn vớiat
hàm thành viên (nhưng không phải vớioperator[]
), để bạn có thể làm gì đó nếu bạn tham chiếu đến một chỉ mục không tồn tại thay vì chỉ xem chương trình của bạn gặp sự cố hoặc tệ hơn là tiếp tục thực thi với dữ liệu bị hỏng.- Sách dạy nấu ăn C ++