Trong bài viết này, chúng ta sẽ thảo luận về cách hoạt động, cú pháp và ví dụ của forward_list::operator= trong C++.
Forward_list trong STL là gì?
forward_list là các container trình tự cho phép chèn và xóa trong thời gian không đổi ở bất kỳ vị trí nào trong chuỗi. forward_list được triển khai dưới dạng danh sách liên kết đơn. Thứ tự được duy trì bằng cách liên kết mỗi phần tử với phần tử tiếp theo trong chuỗi.
forward_list::operator= là gì?
forward_list::operator= được sử dụng để gán giá trị mới cho container forward_list bằng cách thay thế các giá trị đã tồn tại. Toán tử này cũng thay đổi kích thước của container forward_list theo các giá trị mới.
Cú pháp
forward_container1 = forward_container2;
Hàm này chấp nhận một container forward_list khác cùng kiểu.
Giá trị trả về
Nó trả về con trỏ *this.
Trong đoạn mã dưới đây, chúng ta tạo hai forward list, chèn phần tử, sau đó sử dụng toán tử = để ghi đè các phần tử của forward list 1 bằng forward list 2.
Ví dụ
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> forwardList1 = {10, 20, 30};
forward_list<int> forwardList2 = {0, 1, 2, 3};
forwardList1 = forwardList2;
cout << "forwardList1 sau khi dùng toán tử = với forwardList2\n";
for (auto i = forwardList1.begin(); i != forwardList1.end(); ++i)
cout << ' ' << *i;
return 0;
}
Kết quả
Chạy mã trên sẽ cho kết quả sau:
forwardList1 sau khi dùng toán tử = với forwardList2 0 1 2 3
Ví dụ 2
Trong ví dụ này, chúng ta kiểm tra trạng thái của forward list 2 sau khi gán, xem nó có bị thay đổi hay không.
#include <forward_list>
#include <iostream>
using namespace std;
int main() {
forward_list<int> forwardList1 = {10, 20, 30};
forward_list<int> forwardList2 = {0, 1, 2, 3};
forwardList1 = forwardList2;
cout << "forwardList1 sau khi dùng toán tử = với forwardList2\n";
for (auto i = forwardList1.begin(); i != forwardList1.end(); ++i)
cout << ' ' << *i;
cout << "\nforwardList2 sau khi dùng toán tử = với forwardList1\n";
for (auto i = forwardList2.begin(); i != forwardList2.end(); ++i)
cout << ' ' << *i;
return 0;
}
Kết quả
Chạy mã trên sẽ cho kết quả sau:
forwardList1 sau khi dùng toán tử = với forwardList2 0 1 2 3 forwardList2 sau khi dùng toán tử = với forwardList1 0 1 2 3