SET
I. Khái niệm:
- set là tập hợp các phần tử không có giá trị trùng lặp, các phần tử này sẽ là khóa. Giá trị của phần
tử không thể thay đổi khi đã được thêm vào set mặc dù có thể xóa hoặc thêm giá trị đã thay đổi
của phần tử vào set.
- set sẽ thực hiện như cây nhị phân tìm kiếm.
II. Khai báo:
- Cấu trúc:
set <kiểu dữ liệu> tên_biến; //các phần tử của set sẽ sắp xếp tăng dần
set <kiểu dữ liệu, comparator> tên_biến;//các phần tử của set được sắp xếp theo hàm comparator
- Khởi tạo khi khai báo:
set<string> myset{ "This", "is",
"Geeksforgeeks" };
set<int> s2([Link](), [Link]());
III. Một số hàm:
1. Capacity Functions
size() – Returns the number of elements in the set.
set_name.size()
empty() – Returns whether the set is empty.
[Link]()
2. Iterator Functions
begin() – Returns an iterator to the first element in the set.
end() – Returns an iterator to the theoretical element that follows last element in the set.
rbegin()– Returns a reverse iterator pointing to the last element in the container.
rend()– Returns a reverse iterator pointing to the theoretical element right before the first
element in the set container.
crbegin()– Returns a constant iterator pointing to the last element in the container.
crend() – Returns a constant iterator pointing to the position just before the first element in the
container.
cbegin()– Returns a constant iterator pointing to the first element in the container.
cend() – Returns a constant iterator pointing to the position past the last element in the
container.
3. Manipulating Functions
insert(const g) – Adds a new element ‘g’ to the set.
iterator insert (iterator position, const g) – Adds a new element ‘g’ at the position pointed by
iterator.
erase(iterator position) – Removes the element at the position pointed by the iterator.
erase(const g)– Removes the value ‘g’ from the set.
clear() – Removes all the elements from the set.
emplace()– This function is used to insert a new element into the set container, only if the
element to be inserted is unique and does not already exists in the set.
emplace_hint()– Returns an iterator pointing to the position where the insertion is done. If the
element passed in the parameter already exists, then it returns an iterator pointing to the position
where the existing element is.
set_name.emplace_hint(iterator position, value)
position: This parameter acts as a hint from where the searching operation is done before
inserting the element at its current position. The position only helps the process to be faster, it
does not decide where the new element is to be inserted. The new element is inserted
following the property of the set container only.
value: This specifies the element to inserted in the set container. The value is inserted into the
set if it is not present before.
swap()– This function is used to exchange the contents of two sets but the sets must be of
same type, although sizes may differ.
operator= – The ‘=’ is an operator in C++ STL which copies (or moves) a set to another set
and set::operator= is the corresponding operator function.
4. Một số hàm khác:
find(const g) – Returns an iterator to the element ‘g’ in the set if found, else returns the iterator
to end.
count(const g) – Returns 1 or 0 based on the element ‘g’ is present in the set or not.
lower_bound(const g) – Returns an iterator to the first element that is equivalent to ‘g’ or
definitely will not go before the element ‘g’ in the set.
upper_bound(const g) – Returns an iterator to the first element that will go after the element
‘g’ in the set.
equal_range()– The function returns an iterator of pairs. (key_comp). The pair refers to the
range that includes all the elements in the container which have a key equivalent to k.