Trong hướng dẫn này, chúng ta sẽ thảo luận về một chương trình để hiểu cách chèn và xóa trong STL set trong C++.
Set là một container. Đặc điểm khiến nó trở nên độc đáo là nó chỉ có thể chứa các phần tử duy nhất và chúng có thể được duyệt theo thứ tự đã sắp xếp.
Ví dụ
Chèn (Insertion)
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> st;
// khai báo iterator
set<int>::iterator it = st.begin();
set<int>::iterator it1, it2;
pair< set<int>::iterator, bool> ptr;
// chèn một phần tử đơn lẻ
ptr = st.insert(20);
if (ptr.second)
cout << "Phần tử vừa được chèn mới";
else
cout << "Phần tử đã tồn tại";
cout << "\nCác phần tử của set sau lần chèn thứ 1: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
st.insert(it, 24);
cout << "\nCác phần tử của set sau lần chèn thứ 2: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
int arr[3] = { 25, 24, 26 };
st.insert(arr, arr + 3);
cout << "\nCác phần tử của set sau lần chèn thứ 3: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
}
Kết quả
Phần tử vừa được chèn mới Các phần tử của set sau lần chèn thứ 1: 20 Các phần tử của set sau lần chèn thứ 2: 20 24 Các phần tử của set sau lần chèn thứ 3: 20 24 25 26
Xóa (Deletion)
#include <iostream>
#include <set>
using namespace std;
int main() {
set<int> st;
// khai báo iterator
set<int>::iterator it;
set<int>::iterator it1;
set<int>::iterator it2;
pair< set<int>::iterator, bool> ptr;
// chèn giá trị vào set
for (int i = 1; i < 10; i++)
st.insert(i * 5);
cout << "Các phần tử của set sau khi chèn: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
it = st.begin();
cout << endl;
++it;
st.erase(it);
// in set sau khi xóa
cout << "Các phần tử của set sau lần xóa thứ 1: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
st.erase(40);
cout << "\nCác phần tử của set sau lần xóa thứ 2: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
++it; ++it; ++it; ++it;
st.erase(it, st.end());
cout << "\nCác phần tử của set sau lần xóa thứ 3: ";
for (it1 = st.begin(); it1 != st.end(); ++it1)
cout << *it1 << " ";
cout << endl;
}
Kết quả
Các phần tử của set sau khi chèn: 5 10 15 20 25 30 35 40 45 Các phần tử của set sau lần xóa thứ 1: 5 15 20 25 30 35 40 45 Các phần tử của set sau lần xóa thứ 2: 5 15 20 25 30 35 45 Các phần tử của set sau lần xóa thứ 3: 5 15 20