Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> C++

Chèn và Xóa trong STL Set C++


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