zoukankan      html  css  js  c++  java
  • C++中set的使用

    何为set

    setSTL中的一种关联容器,里面的元素根据关键字存储。set的元素都是唯一的,没有重复元素,我们可以利用这个特点进行去重的操作;

    set中常用的方法

    函数名 作用
    clear 清除内容
    insert 插入元素或节点
    emplace 原位构造元素
    erase 移除元素
    swap 交换内容
    count 返回匹配特定键的数量,可以用于判断元素是否存在
    find 查找特定元素
    contains 检查是否包含特定元素,C++20才有
    lower_bound 返回第一个不小于给定键的元素的迭代器
    upper_bound 返回第一个大于给定键的元素的迭代器

    示例程序

    void TestSet()
    {
        // use constructor
        std::set<std::string> name;
        name.insert("Alex");
        name.insert("Alice");
        // delete duplicate element
        name.insert("Alex");
        std::cout << "size of name is " << name.size() << std::endl;
    
        for (std::string val : name)
            std::cout << val << "	";
        std::cout << std::endl;
    
        // use erase to remove some element
        std::set<int> nums = { 1,2,3,4,5,6,7,8,9,10 };
        std::set<int> copynums(nums.find(4), nums.end());
    
        for (auto itr = nums.begin(); itr != nums.end(); )
        {
            if (*itr % 2 == 0)
            {
                itr = nums.erase(itr);
            }
            else
            {
                ++itr;
            }
        }
    
        for (const auto& val : nums)
        {
            std::cout << val << "	";
        }
        std::cout << std::endl;
    
        copynums.erase(copynums.find(7), copynums.end());
        for (const auto& val : copynums)
        {
            std::cout << val << "	";
        }
        std::cout << std::endl;
        
        std::cout << copynums.count(4) << std::endl;
    
        // checks if there is an element in the container and contains func exist in C++20 version
        /*if (money.contains(100))
        {
            std::cout << "100 is in this container" << std::endl;
        }
        else
        {
            std::cout << "100 is not in this container" << std::endl;
        }*/
    }
    

    程序输出结果

    size of name is 2
    Alex    Alice
    1       3       5       7       9
    4       5       6
    1
    
  • 相关阅读:
    Centos7:Redis3.0集群搭建
    Centos7:Redis的安装,配置及使用
    nginx 配置反向代理和负载均衡
    Centos7:nginx的安装,配置及使用
    Centos7:dubbo监控中心安装,配置和使用
    Centos7:配置防火墙
    MarkDown常用语法
    关于获取本地系统时间是正确的,但插入数据库是错的,相差8小时
    Uncaught TypeError: Cannot read property 'getters' of undefined
    java mysql连接时出现的问题
  • 原文地址:https://www.cnblogs.com/zuixime0515/p/13215644.html
Copyright © 2011-2022 走看看