Viết hàm main() sử dụng hàm campItems() để đọc tên các thứ được lưu trong lista.txt và lisrb.txt sau đó lưu các tên thứ này xuống các vector myList và yourList tương ứng. Hàm main() sa[r]
(1)L p trình hậ ướng đ i tố ượng – Th c hànhự
TRƯỜNG ĐẠI HỌC GTVT TP HCM KHOA CNTT
MƠN HỌC LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG BÀI THỰC HÀNH
CHƯƠNG 6: Standard Template Library
Bài 1:
Bạn và một người bạn của bạn chuẩn bị đi cắm trại. Cả hai đều suy nghĩ độc lập phải mang theo những thứ gì. Cả hai đều tạo riêng cho mình một danh sách các thứ cần mang theo. Sau khi xem 02 danh sách này, bạn phát hiện có một số thứ trùng nhau. Các danh sách được lưu trong 02 tập tin văn bản là lista.txt và listb.txt (sẽ cho ở phần sau của bài thực hành này). Tên của mỗi thứ bạn cần phải mang theo khi đi cắm trại được biểu diễn bằng một chuỗi ký tự và được lưu trên một dịng của tập tin (mỗi thứ trên một dịng). Giả sử rằng các thứ trong một danh sách chỉ xuất hiện một lần
a Viết một hàm có tên là campItems() để đọc một danh sách các thứ từ tập tin và lưu trữ chúng trong một vector (vector <string>). Hàm này có 02 tham số: hằng chuỗi ký tự biểu diễn tên tập tin và một đối tượng thuộc kiểu vector<string>
b Viết hàm main() sử dụng hàm campItems() để đọc tên các thứ được lưu trong lista.txt và lisrb.txt sau đó lưu các tên thứ này xuống các vector myList và yourList tương ứng. Hàm main() sau đó tổng hợp 02 danh sách này thành một danh sách và hiển thị ra màn hình (các tên thứ khơng trùng nhau)
Các tập tin lista.txt và listb.txt cho ví dụ như sau:
(2)L p trình hậ ướng đ i tố ượng – Th c hànhự
Lista.txt Tent Bed Stove Matches Lamp Food Water Listb.txt Tent
FishingRod Bait
Boat Bài 2:
CircList là một lớp khn mẫu biểu diễn một danh sách liên kết vịng (vịng đơn) theo hình vẽ sau:
data
data data
head
Node là một cấu trúc khn mẫu biểu diễn một nút (phần tử) trong một danh sách liên kết vịng. Định nghĩa cấu trúc khn mẫu Node và lớp khn mẫu CircList được cho như sau:
template <class T> struct Node {
(3)L p trình hậ ướng đ i tố ượng – Th c hànhự
Node<T>* next; // Link to next node in the list
// Constructor Node() : next(0) {
}
// Parameterised constructor
Node(T value, Node<T>* link = 0) : data(value), next(link) {
} };
template <class T> class CircList {
private:
Node<T>* head; // The head node.
// Points to null when the list is empty.