Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 16 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
16
Dung lượng
435,78 KB
Nội dung
STL Vector | SỬ DỤNG STL VECTOR I.Giới thiệu : Lớp mảng động vector có sẵn thư viện chuẩn STL C++ cho phép định nghĩa mảng động phần tử kiểu T, vector có tính chất sau: - Không cần phải khai báo kích thước mảng vector tự động cấp phát nhớ, bạn quan tâm đến quản lý kích thước - Vector cho bạn biết số lượng phần tử mà bạn lưu - Vector có phương thức stack - Hỗ trợ tất thao tác chèn ,xóa, chép II.Vì dùng vector : Kiểu vector coi kiểu mảng lập trình C truyền thống Mảng tập hợp giá trị kiểu, xếp nối tiếp Các phần tử mảng truy cập ngẫu nhiên qua số Vấn đề đặt ra: Nếu vector mảng lại phải sử dụng vector bạn quen thuộc với mảng? Xin phân tích số nhược điểm sau mảng: - Nếu bạn sử dụng mảng tĩnh: Mảng khai báo với kích thước tối đa mà bạn 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 nhớ, làm việc với trỏ Con trỏ khái niệm hay C, C++, nguyên nhân nhiều rắc rối lập trình - Không thuận tiện 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 số vượt kích thước khai báo, C++ không thông báo lỗi, điều dẫn đến lỗi dây chuyền lệnh lỗi tác động đến biến khác chương trình (trong Pascal bạn kiểm tra tràn số mảng dẫn biên dịch range check) Vector container cung cấp khả sử dụng mảng mềm dẻo, có kiểm soát range check cần thiết, với kích thước tùy ý (mà không cần phải sử dụng trỏ) Ngoài vector cho phép bạn chèn thêm xóa số phần tử lệnh (không phải sử dụng vòng lặp mảng) III.Cú pháp : Để dùng vector bạn phải thêm header #include phải có using std::vector; vector định nghĩa STL( Standard Template Library) Cú pháp vector đơn giản ví dụ : vector A ; Câu lệnh định nghĩa vector có kiểu int Chú ý kiểu vector để ngoặc nhọn Vì kíck thước vector nâng lên, không cần khai báo cho có phần tử được, thích khai báo bạn khai báo sau : vector A(10); Câu lệnh khai báo A vector kiểu int có 10 phần tử Tuy nhiên nói trên, size = 10, bạn add vào cho phép thường Cũng khởi tạo cho phần tử vector cú pháp đơn giản sau : vector A(10, 2); STL Vector | Trong câu lện 10 phần tử vector A khởi tạo Đồng thời ta khởi tạo cho vector phần vector khác, ví dụ : vector A(10,2); vector B(A); vector C(A.begin(), A.begin() + ); Để hiểu rõ vector, bạn theo dõi ví dụ sau: #include // Thư viện iostream phục vụ ghi liệu h.nh #include // Thư viện vector, sử dụng kiểu vector #include // Thư viện conio (sử dụng hàm getchar() để dừng ct) using namespace std; // Sử dụng namespace std int main() { vector V(3); // V kiểu vector số nguyên (sử dụng giống mảng int[3]) V[0] = 5; // Gán giá trị cho phần tử biến V V[1] = 6; // Sử dụng dấu móc [] hoàn toàn giống với mảng V[2] = 7; for (int i=0; i[...].. .STL Vector | 11 Vois swap (vector&ob) trong vector Chuyển đổi những phần tử được lưu trong vector hiện thời với những phần tử trong ob VIII.Dùng 1 số hàm cơ bản trong thư viện algorithm Khởi tạo: Bạn có thể sử dụng lệnh fill của thư viện để tô một vùng giá trị của 1 container (thường là 1 mảng, 1 vector) // fill algorithm example #include... .. .STL Vector | Trong câu lện 10 phần tử vector A khởi tạo Đồng thời ta khởi tạo cho vector phần vector khác, ví dụ : vector< int> A(10,2); vector< int> B(A); vector< int> C(A.begin(),... với thư viện STL với lớp vector trỏ kiểu iterator sau: #include #include using std: :vector; void main() { vector< int> v; for(int i = 10; i < 15; i++) v.push_back(i); vector< int>::iterator... đầu vector Thiết lập kích thước vector nhiều num Chuyển đổi kích thước vector xác định num Nếu kích thước vector tăng lên phần tử có giá trị val thêm vào cuối vector Trả số lượng phần tử thời STL