Set – STL C++

Set

Set là container lưu các phần tử duy nhất tuân theo 1 thứ tự đặc biệt. Giá trị của mỗi phần tử luôn là hằng số, (không thể modify được), chỉ có thể insert hoặc remove phần tử khỏi container set.

Member function

(constructor) Hàm tạo set
(destructor) Hàm hủy set
operator= Toán tử gán

Iterators

begin Trả về iterator trỏ tới phần tử đầu
end Trả về iterator trỏ tới phần tử cuối
rbegin Trả về reverse iterator tới phần tử đầu
rend Trả về reverse iterator tới phần tử cuối
cbegin (C++ 11) Trả về const_iterator tới phần tử đầu
cend (C++ 11) Trả về const_iterator tới phần tử cuối
crbegin (C++ 11) Trả về const_reverse_iterator to reverse beginning
crend (C++ 11) Trả về const_reverse_iterator to reverse end

Capacity

empty Kiểm tra set rỗng hay không
size Trả về kích thước của set
max_size Trả về kích thước mà set có thể lưu được

Modifiers

insert Chèn phần tử
erase Xóa phần tử
swap Swap nội dung của 2 set với nhau
clear Xóa nội dung
emplace (C++ 11) Khởi tạo và chèn phần tử
emplace_hint (C++ 11) Khởi tạo và chèn phần tử với gợi ý

Observers

key_comp Trả về đối tượng so sánh
value_comp Trả về đối tượng so sánh

Operations

find  Lấy iterator tới phần tử
count  Đếm số lượng phần tử
lower_bound  Trả về iterator trỏ tới cận dưới
upper_bound  Trả về iterator trỏ tới cận trên
equal_range  Lấy range của các phần tử tương đồng nhau

Allocator

get_allocator Get allocator

Ví dụ: Minh họa các function của set

#include <iostream>                                                             
#include <set>

using namespace std;

void printset(set<int> words);

int main()
{
    std::set<int> myints;
    std::set<int>::iterator it;
    cout << "size: " << myints.size() << '\n';

    /* insert() */
    for (int i=0; i<10; ++i) myints.insert(i);
    cout << "\n****insert()****";
    printset(myints);
    cout << "size: " << myints.size() << '\n';

    /* erase() */
    myints.erase(5);
    cout << "\n****erase()****";
    printset(myints);
    cout << "size: " << myints.size() << '\n';

    /* emplace() */
    cout << "\n****emplace()****";
    auto ret = myints.emplace(6);
    if (!ret.second)
        cout << "\n6 existed in set";
    printset(myints);
    cout << "size: " << myints.size() << '\n';

    /* find() */
    cout << "\n****find()****";
    it = myints.find(6);
    myints.erase(it);
    printset(myints);
    cout << "size: " << myints.size() << '\n';

    system("pause");
    return 0;
}

void printset(set<int> words)
{
    set<int>::iterator i;
    cout << "\nset: ";
    for (i = words.begin(); i != words.end(); i++)
    {
        cout << *i << " ";
    }
    cout << endl;
}

Kết quả:

Set STL C++
Set STL C++

Be the first to comment

Leave a Reply