当前位置: 首页 > wzjs >正文

天津响应式网站建设2022最火营销方案

天津响应式网站建设,2022最火营销方案,北京网站建设方案,网络科技公司注册要求目录 1. 什么是 std::set? 2. 基本用法 a. 创建 set b. 插入元素 c. 查看元素 d. 删除元素 e. 遍历 set 3. std::set 的特点 a. 自动排序 b. 唯一性 c. 时间复杂度 4. std::set 与 std::unordered_set 的区别 5. 总结 std::set 是 C 标准库中非常有用的…

目录

1. 什么是 std::set?

2. 基本用法

a. 创建 set

b. 插入元素

c. 查看元素

d. 删除元素

e. 遍历 set

3. std::set 的特点

a. 自动排序

b. 唯一性

c. 时间复杂度

4. std::set 与 std::unordered_set 的区别

5. 总结

std::set 是 C++ 标准库中非常有用的一种容器,它提供了一个自动排序不允许重复元素的集合。它通常用于需要存储一组元素并且需要确保每个元素唯一的场景。

1. 什么是 std::set

std::set 是 C++ 标准库中的一个关联容器。它的主要特点有:

  • 自动排序:元素在 std::set 中是按特定顺序自动排序的(默认是升序)。你不需要手动排序,set 会在插入元素时自动完成排序。

  • 唯一元素std::set 中的每个元素都是唯一的,重复的元素不会被插入。试图插入重复元素时,插入操作会失败。

  • 快速查找std::set 是基于平衡二叉搜索树(通常是红黑树)实现的,因此它能在 O(log N) 时间内进行查找、插入和删除。

2. 基本用法

  • std::set 使用时,你需要包含头文件:

    #include <set>
    
    a. 创建 set

    你可以使用默认构造函数创建一个空的 set

    std::set<int> mySet;  // 创建一个存储整数的空 set
    

    你也可以初始化一个 set,比如通过列表初始化:

    std::set<int> mySet = {5, 3, 8, 1};
    
    b. 插入元素

    使用 insert 方法来插入元素:

    mySet.insert(10);  // 向 set 中插入 10
    mySet.insert(3);   // 3 已经存在,不会插入
    

    如果元素已经存在,insert 方法不会做任何操作,set 中的元素保持不变。

    c. 查看元素

    你可以使用 find 来查看 set 中是否包含某个元素:

    auto it = mySet.find(3);  // 查找元素 3
    if (it != mySet.end()) {std::cout << "Found: " << *it << std::endl;  // 找到元素
    } else {std::cout << "Not found" << std::endl;  // 未找到元素
    }
    

    find 方法返回一个迭代器。如果元素存在,它返回指向该元素的迭代器;如果不存在,返回 set.end()

    d. 删除元素

    使用 erase 方法删除元素:

    mySet.erase(5);  // 删除元素 5
    

    如果你传入一个迭代器,也可以删除某个特定位置的元素:

    auto it = mySet.find(3);
    if (it != mySet.end()) {mySet.erase(it);  // 删除迭代器指向的元素
    }
    
    e. 遍历 set

    std::set 是有序的,你可以通过迭代器来遍历它:

    for (auto it = mySet.begin(); it != mySet.end(); ++it) {std::cout << *it << " ";  // 输出每个元素
    }
    std::cout << std::endl;
    

    你还可以使用范围-based for 循环:

    for (const int& value : mySet) {std::cout << value << " ";  // 输出每个元素
    }
    std::cout << std::endl;
    

    3. std::set 的特点

    a. 自动排序

    std::set 会根据元素的大小自动排序,默认情况下是按升序排列的。例如:

    std::set<int> mySet = {5, 3, 8, 1};
    for (const int& value : mySet) {std::cout << value << " ";  // 输出 1 3 5 8(自动排序)
    }
    std::cout << std::endl;
    

    如果你希望使用自定义排序规则,可以提供一个比较函数:

    std::set<int, std::greater<int>> mySet = {5, 3, 8, 1};  // 按降序排序
    for (const int& value : mySet) {std::cout << value << " ";  // 输出 8 5 3 1
    }
    std::cout << std::endl;
    
    b. 唯一性

    std::set 中的元素是唯一的。插入重复元素时,set 会忽略重复的插入:

    std::set<int> mySet = {1, 2, 3};
    mySet.insert(2);  // 不会插入,因为 2 已经在 set 中
    mySet.insert(4);  // 会插入 4for (const int& value : mySet) {std::cout << value << " ";  // 输出 1 2 3 4
    }
    std::cout << std::endl;
    
    c. 时间复杂度

    由于 std::set 是基于红黑树(平衡二叉搜索树)实现的,插入、删除和查找操作的时间复杂度都是 O(log N),其中 N 是 set 中元素的个数。

    4. std::setstd::unordered_set 的区别

    std::setstd::unordered_set 都是用于存储唯一元素的容器,但是它们有以下区别:

  • 排序std::set 会自动对元素进行排序,而 std::unordered_set 不会,它是基于哈希表实现的,因此元素的顺序是不可预测的。

  • 查找效率std::unordered_set 的查找效率一般比 std::set 更高,尤其是当元素很多时。unordered_set 的查找时间复杂度通常是 O(1),但是在最坏情况下可能会退化为 O(N);而 std::set 的查找时间复杂度始终是 O(log N)

  • std::set 是一个基于平衡二叉搜索树的容器,具有自动排序和唯一性。

  • 插入、删除和查找元素的时间复杂度都是 O(log N)

  • 它适用于需要存储有序数据且不允许重复元素的场景。

5. 总结

  • std::set 是一个基于平衡二叉搜索树的容器,具有自动排序和唯一性。

  • 插入、删除和查找元素的时间复杂度都是 O(log N)

  • 它适用于需要存储有序数据且不允许重复元素的场景

http://www.dtcms.com/wzjs/432388.html

相关文章:

  • 代备案网站空间本地建站软件有哪些
  • 怎样做才能让百度前两页有自己网站内容郑州网络营销推广
  • 政府网站集约化建设试点腾讯广告
  • 加强 政府网站信息内容 建设武汉十大技能培训机构
  • 网站充值 下模板seo人才招聘
  • 带m开头的网站怎么做手机建网站软件
  • 电商设计就是网站设计吗网页设计制作网站图片
  • 网络彩票的网站怎么做网站建设小程序开发
  • wordpress网站鼠标公司seo排名优化
  • 重庆市公路建设市场信用信息台州seo排名公司
  • 解决方案网站排名网站推广营销运营方式
  • 政府信息公开和网站建设b站推广入口2023mmm
  • 阿里云虚拟机怎么做多个网站网站整站优化公司
  • 郴州新闻今日头条长沙网站优化培训
  • 济南做网站哪里便宜广告投放平台排名
  • wordpress中的文章深圳网络推广seo软件
  • 河北省网站备案管理系统seo自学教程seo免费教程
  • 枣阳网站开发公司哪家好网站推广公司排名
  • 网站设计的主要机构有哪些?百度网络推广怎么做
  • 汽车门户网站 源码三十个知识点带你学党章
  • 公司建设网站注意事项培训学校机构有哪些
  • 网站建设最便宜多少钱做网销的一天都在干嘛
  • 免费php网站系统自动发帖软件
  • 女生做网站后期维护工作好吗网站测试
  • 个人做的卖货网站建站快车
  • 网站建设信(信科网络)百度平台订单查询
  • 淘宝网站小视频怎么做深圳英文站seo
  • 香港建站优化方案百度竞价怎么收费
  • 网站建设规划书300字重庆seo推广运营
  • 婚纱摄影网站源码优化网络软件