Chatbox

Các bạn vui lòng dùng từ ngữ lịch sự và có văn hóa,sử dụng Tiếng Việt có dấu chuẩn. Chúc các bạn vui vẻ!
14/03/2014 21:03 # 1
vnttqb
Cấp độ: 13 - Kỹ năng: 8

Kinh nghiệm: 5/130 (4%)
Kĩ năng: 39/80 (49%)
Ngày gia nhập: 21/03/2011
Bài gởi: 785
Được cảm ơn: 319
[Ebook] STL Vector


Lớp mảng động vector<T> có sẵn trong thư viện chuẩn STL của C++ cho phép định nghĩa một mảng động các phần 
tử kiểu T, vector có các tính chất sau: 
 
- Không cần phải khai báo kích thước của mảng vector có thể tự động cấp phát bộ nhớ, bạn sẽ không phải quan tâm 
đến quản lý kích thước của nó. 
- Vector còn có thể cho bạn biết số lượng các phần tử mà bạn đang lưu trong nó. 
- Vector có các phương thức của stack. 
- Hỗ trợ tất cả các thao tác cơ bản như chèn ,xóa, sao chép .. 
 
Vì sao phải dùng Vector
 
Kiểu vector có thể coi là kiểu mảng trong lập trình C truyền thống. Mảng là tập hợp các giá trị cùng kiểu, được sắp 
xếp nối tiếp nhau. Các phần tử của mảng có thể được truy cập ngẫu nhiên qua chỉ số. 
Vấn đề đặt ra: Nếu vector là mảng thì tại sao lại phải sử dụng vector khi bạn đã quá quen thuộc với mảng? Xin phân 
tích một số nhược điểm sau của mảng: 
 
- Nếu bạn sử dụng mảng tĩnh: Mảng này luôn được khai báo với kích thước tối đa mà bạn có thể dùng dẫn đến tốn 
nhiều vùng nhớ thừa. 
- Nếu bạn sử dụng mảng động: Bạn phải xin cấp phát bộ nhớ, làm việc với con trỏ. Con trỏ là 
khái niệm hay trong C, C++, nhưng nó là nguyên nhân của rất nhiều rắc rối trong lập trình. 
- Không thuận tiện trong việc truyền tham số kiểu mảng vào hàm hay trả lại kiểu mảng từ hàm. 
- Nhược điểm quan trọng nhất: Nếu bạn sử dụng mảng vượt chỉ số vượt quá kích thước đã khai báo, C++ sẽ không 
thông báo lỗi, điều này dẫn đến lỗi dây chuyền do các lệnh lỗi đã tác động đến các biến khác trong chương trình 
(trong Pascal bạn có thể kiểm tra tràn chỉ số mảng bằng dẫn biên dịch range check). 
 
Vector là một container cung cấp khả năng sử dụng mảng mềm dẻo, có kiểm soát range check khi cần thiết, với kích 
thước tùy ý (mà không cần phải sử dụng con trỏ). Ngoài ra vector cho phép bạn chèn thêm hoặc xóa đi một số phần 
tử chỉ bằng 1 lệnh (không phải sử dụng vòng lặp như đối với mảng).

 

File đính kèm Bạn phải đăng nhập mới thấy link download


======================================================================================================

Cuộc đời là một dòng sông. Ai không bơi thì chết. 
 

Name: Tien (Tory) TRAN
Email: TranTien29@gmail.com


 
Copyright© Đại học Duy Tân 2010 - 2024