set là container liên kết lưu trữ các phần tử duy nhất (unique) và được sắp xếp tự động theo thứ tự tăng dần. Giá trị phần tử không thể sửa đổi sau khi chèn (chỉ có thể xóa và chèn lại giá trị mới).
Các hàm chính
- st.size() – Số phần tử.
- st.insert(val) – Chèn giá trị (bỏ qua nếu đã tồn tại).
- st.erase(val) – Xóa phần tử theo giá trị.
- st.find(val) – Trả về iterator đến phần tử hoặc
end()nếu không tìm thấy. - st.begin() / st.end() – Iterator đầu/cuối để duyệt.
Ví dụ mã: Menu Set
#include <iostream>
#include <set>
#include <string>
#include <cstdlib>
using namespace std;
int main() {
set<int> st;
set<int>::iterator it;
int c, i;
while (true) {
cout << "1. Kích thước Set\n";
cout << "2. Chèn phần tử\n";
cout << "3. Xóa phần tử\n";
cout << "4. Tìm phần tử\n";
cout << "5. Hiển thị Set\n";
cout << "6. Thoát\n";
cout << "Nhập lựa chọn: ";
cin >> c;
switch (c) {
case 1:
cout << "Kích thước Set: " << st.size() << endl;
break;
case 2:
cout << "Nhập giá trị: ";
cin >> i;
st.insert(i);
break;
case 3:
cout << "Nhập giá trị cần xóa: ";
cin >> i;
st.erase(i);
break;
case 4:
cout << "Nhập giá trị cần tìm: ";
cin >> i;
it = st.find(i);
if (it != st.end())
cout << "Tìm thấy: " << *it << endl;
else
cout << "Không tìm thấy\n";
break;
case 5:
cout << "Set: ";
for (it = st.begin(); it != st.end(); ++it)
cout << *it << " ";
cout << endl;
break;
case 6:
return 0;
default:
cout << "Lựa chọn không hợp lệ\n";
}
}
return 0;
}
Kết quả mẫu
1. Kích thước Set 2. Chèn phần tử 3. Xóa phần tử 4. Tìm phần tử 5. Hiển thị Set 6. Thoát Nhập lựa chọn: 1 Kích thước Set: 0 ... Nhập lựa chọn: 2 Nhập giá trị: 1 ... Nhập lựa chọn: 4 Nhập giá trị cần tìm: 7 Tìm thấy: 7 Nhập lựa chọn: 6