Bạn có quyền kiểm soát nhiều hơn nữa với các mảng
Làm thế nào về:
1), bạn đang đối phó với các tập dữ liệu khổng lồ nơi dữ liệu phải được ánh xạ tập tin và không được phân bổ với malloc
hoặc new
bởi vì kích thước của nó . Trong kịch bản này lo lắng về việc phải làm gì nếu bạn không đặt đủ không gian địa chỉ ngay từ đầu có thể là tranh luận, mặc dù tôi cho rằng bạn có thể unmap - extend - remap tệp, trừ khi bị phân mảnh theo địa chỉ hoặc điểm thứ hai của tôi.
2) Mã sử dụng đa xử lý không khóa. Hiệu suất truy cập dừng các luồng để phân bổ lại (hoặc bất kỳ "STL goodie" khác) có thể không được chấp nhận, do đó sử dụng mảng, bạn có quyền kiểm soát nhiều hơn, bạn có thể cần phải gọi rất nhiều chức năng để tạm dừng các luồng khác trước khi bạn thay đổi kích thước bất cứ điều gì.
BTW, tôi thường xử lý 1 và 2 cùng một lúc. Mảng của cấu trúc + con trỏ làm việc tuyệt vời, Biên dịch với C++ vì bạn vẫn có thể sử dụng một số tính năng C++ ở nơi khác trong mã.Tôi chắc rằng tôi có thể nghĩ ra nhiều ví dụ khác nếu tôi đã cố gắng hết sức
Ngoài ra: * mảng nhanh hơn; * Các mảng có thể được khởi tạo tĩnh (trong khi các vectơ luôn được khởi động động, lúc chạy) – mojuba
Đó là lý do "rất nhiều nhà phát triển đang chọn mảng trên std :: vector trong C++" chỉ vì họ đọc một số sách cũ/xấu và bây giờ không muốn chuyển sang cấp độ lập trình mới. Tôi nghi ngờ nhiều người thậm chí còn xem xét bất kỳ điểm nào của bạn trước khi quyết định sử dụng mảng. Ngoài ra không có vấn đề gì vector cung cấp, bất kỳ lập trình viên về mặt lý thuyết có thể sử dụng mảng, bởi vì nếu bạn không hiểu con trỏ và số học của họ bạn không thể là một lập trình viên C++ tốt –