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
    
  • 相关阅读:
    统计知识选讲(二)——主成分分析(PCA)的推导和应用
    统计知识选讲(一)——主成分分析(PCA)的思想
    数模学习笔记(八)——遗传算法
    数模学习笔记(六)——灰色系统
    数模学习笔记(五)——BP神经网络
    数模学习笔记(四)——AHP
    数模学习笔记(三)
    数模学习笔记(二)
    推荐决策 对比user-based 和item-based推荐算法
    Mysql事件学习
  • 原文地址:https://www.cnblogs.com/zuixime0515/p/13215644.html
Copyright © 2011-2022 走看看