Sao Chép Và Hoán đổi Set Trong C++ (swap)
Có thể bạn quan tâm
Hướng dẫn cách sao chép và hoán đổi set trong C++ Bạn sẽ học được cách sao chép một set vào một set khác, cũng như cách hoán đổi 2 set cho nhau trong C++ sau bài học này.
Sao chép set trong C++
set trong C++ thuộc kiểu dữ liệu đối tượng, do vậy khác với các kiểu dữ liệu nguyên thủy, chúng ta không thể sử dụng toán tử bằng = để gán và sao chép một set vào một set mới.
Thay vào đó, chúng ta sẽ sử dụng cách copy constructor trong set với cú pháp như sau:
std::set<type> st_dest(st_src);
Trong đó type là kiểu dữ liệu, st_src là set nguồn để copy và st_dest là set đích dùng để dán kết quả sao chép.
Ví dụ cụ thể:
| #include <iostream>#include <set> using namespace std;//Tạo hàm xuất setvoid dump(set<int>& st){ for (auto x: st) { cout << " "<< x ; } cout << endl;}int main(){ set<int> st_src{3, 1, 4,5}; cout << "Orginary set" << endl; dump (st_src); /*Sao chép set*/ set<int> st_dest(st_src); cout << "Copy set" << endl; dump (st_dest); return 0;} |
Kết quả:
| Orginary set 1 3 4 5Copy set 1 3 4 5 |
Hoán đổi 2 set trong C++
set swap trong C++ là một hàm thành viên trong class std:set, có tác dụng hoán đổi 2 set trong C++.
Hàm swap sẽ hoán đổi toàn bộ nội dung của 2 set đã cho cho nhau và làm thay đổi nội dung cũng như độ dài của chúng.
Cú pháp hàm set swap để hoán đổi 2 set trong C++ như sau:
st1.swap(st2);
Trong đó st1 và st2 là 2 set cần hoán đổi nội dung cho nhau.
Ví dụ cụ thể:
| #include <iostream>#include <set> using namespace std;//Tạo hàm xuất setvoid dump(set<int>& v){ for (auto x: v) { cout << " "<< x ; } cout << endl;}int main(){ set<int> st1{3, 1, 4, 1, 5}; set<int> st2{9, 8, 7}; cout << "Before swap" << endl; dump(st1); dump(st2); st1.swap(st2); cout << "After swap" << endl; dump(st1); dump(st2);} |
Kết quả:
| Before swap 1 3 4 5 7 8 9After swap 7 8 9 1 3 4 5 |
Ngoài cách dùng hàm set swap, chúng ta cũng có thể dùng function template là std::swap để tiến hành hoán đổi 2 set với nhau, cũng như là để hoán đổi các đối tượng khác như map, vector trong C++.
Lưu ý chúng ta cần phải thêm header file utility vào trong chương trình để có thể sử dụng được function template này
Ví dụ, chúng ta dùng std::swap để hoán đổi 2 set trong C++ như sau:
| #include <iostream>#include <utility>#include <set> using namespace std;//Tạo hàm xuất setvoid dump(set<int>& v){ for (auto x: v) { cout << " "<< x ; } cout << endl;}int main(){ set<int> st1{3, 1, 4, 1, 5}; set<int> st2{9, 8, 7}; cout << "Before swap" << endl; dump(st1); dump(st2); swap(st1,st2); cout << "After swap" << endl; dump(st1); dump(st2);} |
Và chúng ta thu về kết quả hoán đổi tương tự:
| Before swap 3 1 4 1 5 9 8 7After swap 9 8 7 3 1 4 1 5 |
Tổng kết
Trên đây Kiyoshi đã hướng dẫn bạn về cách sao chép và hoán đổi set trong C++ rồi. Để nắm rõ nội dung bài học hơn, bạn hãy thực hành viết lại các ví dụ của ngày hôm nay nhé.
Và hãy cùng tìm hiểu những kiến thức sâu hơn về C++ trong các bài học tiếp theo.
URL Link
https://laptrinhcanban.com/cpp/lap-trinh-cpp-co-ban/set-trong-cpp/sao-chep-va-hoan-doi-set-trong-cpp/
Từ khóa » Câu Lệnh Swap Trong C++
-
Cách Dùng Hàm Swap? - Programming - Dạy Nhau Học
-
Chi Tiết Bài Học Con Trỏ Và Hàm Trong C++ - Vimentor
-
Hàm Swap
-
Permutation Function In C - Distance Learning
-
Hàm Swap Trong Lập Trình C/C++ - Hàm Hoán Vị Giá Trị 2 Biến
-
Viết Hàm Swap Trong C
-
Viết Hàm Swap Bằng Ngôn Ngữ Lập Trình C/C++ Có Tác Dụng Hoán đổi ...
-
Các Thuật Toán Sắp Xếp Trong C++ - CodeLearn
-
LTC 31. Truyền Tham Chiếu Và Truyền Tham Trị Trong Lập Trình C++
-
Bài Tập C++ Cơ Bản: Hoán đổi Giá Trị 2 Biến | Codelearn
-
Temp Trong C++ Là Gì
-
Hoán đổi Hai Số Sử Dụng Con Trỏ C++
-
Khuôn Mẫu Hàm Trong C++ (Function Templates) - How Kteam
-
Tham Chiếu Trong C++