您当前的位置: 首页 >  c++

暂无认证

  • 0浏览

    0关注

    92582博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

C++基础:STL之set

发布时间:2020-10-25 16:08:14 ,浏览量:0

在这里插入图片描述 这篇文章介绍一下STL中set的基本使用方法。

目录
  • set
  • 头文件和命名空间
  • 常用的成员函数
  • 代码使用示例
  • 示例执行结果
  • 总结
set

使用场景:set能实现很多内容,可能实际想的最多的就是key-value映射的数据类型,按key取值是实际的使用示例,set和map的最大区别在于是否能够有重复。

头文件和命名空间

#include using namespace std;

常用的成员函数 函数名 用途 功能说明 size() 查询遍历 获取元素个数 begin() 查询遍历 获取指向第一个元素的迭代器(正序) end() 查询遍历 获取末尾的迭代器(正序) rbegin() 查询遍历 获取指向第一个元素的迭代器(逆序) rend() 查询遍历 获取末尾的迭代器(逆序) empty() 查询遍历 确认map是否为空 find(x) 查询遍历 查找x,返回相应的迭代器的位置 insert(x) 插入 插入数据x erase(x) 删除 删除指定元素x clear() 删除 删除所有元素 代码使用示例
#include#includeusing namespace std;

int check_after_insert(string str,sets) {
    if (s.find(str) != s.end()) {
        cout << "Insert Success. " << endl; return 1;
    } else {
        cout << "Insert Failed." << endl; return 0;
    }
}

int main() {
    sets;

    cout << "Size of map s : " << s.size() << endl;
    s.insert("LiuMiao");
    check_after_insert("LiuMiao",s);
    s.insert("LiuMiaoCN");
    check_after_insert("LiuMiaoCN",s);
    s.insert("Michael");
    check_after_insert("Michael",s);
    s.insert("LiuMiaoCN");
    check_after_insert("LiuMiaoCN",s);
    cout << "Size of set s : " << s.size() << endl;

    set::iterator it = s.begin();
    cout << "begin(): [" << *it << "]" << endl;
    it = s.end();
    //cout << "begin(): [" << *it << "]" << endl;
    it--;
    cout << "begin(): [" << *it << "]" << endl;

    for (it=s.begin(); it != s.end(); it++) cout << "[ " << *it << "]" << endl;

    set::reverse_iterator rit;
    for (rit=s.rbegin(); rit != s.rend(); rit++) cout << "[ " << *rit << "]" << endl;

    it = s.find("LiuMiao");
    if (it != s.end()) {
        cout << "Founded: " << "[ " << *it << "]" << endl;
    } else {
        cout << "LiuMiao: Not Founded. " << endl;
    }

    it = s.find("LiuMiao");
    s.erase(it);

    for (rit=s.rbegin(); rit != s.rend(); rit++) cout << "[ " << *rit << "]" << endl;

    it = s.find("LiuMiao");
    if (it != s.end()) {
        cout << "Founded: " << "[ " << *it << "]" << endl;
    } else {
        cout << "LiuMiao: Not Founded. " << endl;
    }
}
示例执行结果
Size of map s : 0
Insert Success. 
Insert Success. 
Insert Success. 
Insert Success. 
Size of set s : 3
begin(): [LiuMiao]
begin(): [Michael]
[ LiuMiao]
[ LiuMiaoCN]
[ Michael]
[ Michael]
[ LiuMiaoCN]
[ LiuMiao]
Founded: [ LiuMiao]
[ Michael]
[ LiuMiaoCN]
LiuMiao: Not Founded.
总结

变长支持、泛化类型、常用功能函数内嵌、可以使用其他多种STL的函数、使用简单,结合其他类型进行泛化,使用非常广泛。

关注
打赏
1653961664
查看更多评论
立即登录/注册

微信扫码登录

0.4995s