set 容器的使用(胡凡 算法笔记)

C++ Sets

集合(Set)是一种包含已排序对象的关联容器

set insert 将x插入到容器当中自动递增排序并去重

begin()

返回指向第一个元素的迭代器

clear()

清除所有元素

count()

返回某个值元素的个数

empty()

如果集合为空,返回true

end()

返回指向最后一个元素的迭代器

equal_range()

返回集合中与给定值相等的上下限的两个迭代器

erase()

删除集合中的元素

find()

返回一个指向被查找到元素的迭代器

get_allocator()

返回集合的分配器

insert()

在集合中插入元素

lower_bound()

返回指向大于(或等于)某值的第一个元素的迭代器

key_comp()

返回一个用于元素间值比较的函数

max_size()

返回集合能容纳的元素的最大限值

rbegin()

返回指向集合中最后一个元素的反向迭代器

rend()

返回指向集合中第一个元素的反向迭代器

size()

集合中元素的数目

swap()

交换两个集合变量

upper_bound()

返回大于某个值元素的迭代器

value_comp()

返回一个用于比较元素间的值的函数

#include <iostream>
#include <cstdio>
#include <set>

using namespace std;

int main(int argc, char const *argv[]) {

    set<int> st;
    //向st中输入数值
    for(int i:{1,4,5,6,9})
        st.insert(i);
    printf("for(int i:{1,4,5,6,9})st.insert(i):");
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    //find()返回一个指向被查找到元素的迭代器
    cout << "set<int>::iterator j = st.find(5):";
    set<int>::iterator j = st.find(5);
    cout << *j << "\n";

    //erase()删除集合中的元素--删除元素的迭代器
    set<int>::iterator i;
    cout << "for(i = st.begin();i != st.end();i++)if(*i == 4)st.erase(i):";
    for(i = st.begin();i != st.end();i++)
        if(*i == 4)st.erase(i);
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    cout << "st.erase(st.find(1)):";
    st.erase(st.find(1));
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    cout << "st.erase(5):";
    st.erase(5);
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    //向st中输入数值
    //原容器中有6和9--set容器会自动去重
    for(int i:{1,4,5,6,9})
        st.insert(i);
    printf("for(int i:{1,4,5,6,9})st.insert(i):");
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);
    //向st中插入2
    //set容器会自动递增排序
    cout << "st.insert(2):";
    st.insert(2);
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    //删除2 - 6之前一个元素
    cout << "st.erase(fi,fj):";
    set<int>::iterator fi = st.find(2);
    set<int>::iterator fj = st.find(6);
    st.erase(fi,fj);
    for(auto i:st)
        printf("%d%c",i," \n"[i == 9]);

    //size()集合中元素的数目
    cout << "st.size():";
    cout << st.size() << "\n";

    return 0;
}

猜你喜欢

转载自blog.csdn.net/WX_1218639030/article/details/83686603
今日推荐