Thiết lập trong C++

Đặt (bộ) — nó là một thùng chứa tự động sắp xếp các phần tử được thêm vào theo thứ tự tăng dần. Nhưng khi thêm các giá trị giống hệt nhau, set sẽ chỉ lưu trữ một phiên bản của nó (multiset - multiset- có thể chứa các giá trị trùng lặp). Khi một phần tử mới được thêm vào tập hợp, phần tử đó sẽ ngay lập tức được sắp xếp để không vi phạm thứ tự sắp xếp.  

Các bộ trong C++ được định nghĩa trong thư viện mẫu chuẩn STL thông qua lớp set (multiset).

Tập hợp là cây nhị phân đỏ đen. Các thao tác tìm kiếm, xóa và chèn có độ phức tạp logarit.
 
Để sử dụng bộ, bạn cần bao gồm thư viện “set”: #include <set>
Đặt khai báo:
đặt<int> bộ của tôi; // Khai báo tập hợp rỗng. nhiều bộ<int> bộ của tôi; // Khai báo một multiset trống.  
Các hàm làm việc với tập hợp (set)
 
empty() - kiểm tra sự vắng mặt của các phần tử trong vùng chứa
 
size() - Trả về số phần tử trong vùng chứa
 
clear() - Xóa vùng chứa
 
insert() - Chèn phần tử
 
erase() - Xóa phần tử
 
count() - Trả về số phần tử khớp với một khóa đã cho
 
find() - Tìm phần tử có khóa cụ thể
 
lower_bound() - Trả về một biến lặp cho phần tử đầu tiên không nhỏ hơn giá trị đã cho
 
upper_bound() - Trả về một biến lặp cho phần tử đầu tiên lớn hơn giá trị đã chỉ định
 

 
Ví dụ về set và multiset
#include <iostream> #include <set> sử dụng không gian tên std; int chính () { đặt<int> mySet1; // đã khai báo tập rỗng nhiều bộ<int> mySet2; // đã khai báo một multiset rỗng // thêm phần tử vào tập hợp mySet1.insert(1); mySet1.insert(2); mySet1.insert(3); mySet1.insert(1); // thêm phần tử vào multiset mySet2.insert(1); mySet2.insert(2); mySet2.insert(3); mySet2.insert(1); đặt<int>::iterator it; //tạo một iterator for(it = mySet1.begin(); it != mySet1.end(); it++) { // Hiển thị tất cả các phần tử cout << (*nó) << " "; // bộ } cout << kết thúc; for(it = mySet2.begin(); it != mySet2.end(); it++) { // Xuất ra tất cả các phần tử cout << (*nó) << " "; // nhiều bộ } trả về 0; }

Sử dụng set với bộ so sánh
Một ví dụ về bộ so sánh để tạo một tập hợp được sắp xếp theo thứ tự giảm dần. cấu trúc cmp { toán tử bool() ( int a, int b) const{ trả lại > b; } };
Sử dụng bộ so sánh khi tạo bộ. đặt <int, cmp> S;