zoukankan      html  css  js  c++  java
  • STL笔记之set

    //---------------------------------------------------------
    // set综述
    //---------------------------------------------------------
    1.set数据结构的实现:红黑树(平衡二叉树的一种)
    2.在往set中插入元素时,会自动进行排序
    3.set在搜寻元素时具有良好的性能,其搜寻函数算法具有对数复杂度
      [在拥有1000个元素的set中搜寻元素,二叉树搜寻动作(由成员函数执行)的平均时间为线性搜寻时间的1/50]
    4.自动排序造成set的一个重要限制:你不能直接改变元素值,因为这样会打乱原本正确的顺序,
      因此,要改变元素值,必须先删除旧元素,再插入新元素
    5.set不允许元素重复,multiset允许元素重复
     
    //---------------------------------------------------------
    //
    //---------------------------------------------------------
    // A
    set<int> setTest;
    setTest.insert(3);
    setTest.insert(1);
    setTest.insert(2);
    setTest.insert(100);
    插入元素时会自动进行排序

    // B
    set<int>::iterator iter = setTest.find(2);
    if (setTest.end() != iter)
    {
     *iter = 1000;
    }
    虽然可以这样直接改变元素的值,但这样会打乱原本正确的顺序
    所以,
    iter = setTest.find(100)
    会发现 iter == setTest.end()
    即没有找到值为100的元素,实际上set中是有这个元素的。
    造成这一结果的原因就在于打乱了set中原本正确的顺序。

  • 相关阅读:
    新版淘淘商城_01_简介
    JavaMail之-通过邮件激活账号
    javaMail发送邮件
    JavaMail学习之一-邮件传输协议
    解决ios的safari不能自动播放audio问题(以及部分微信也不能自动播放)
    css3背景渐变色
    jq杂记
    各种“分享按钮“方法总结
    底部导航统一高度
    js 与或运算符 || && 妙用
  • 原文地址:https://www.cnblogs.com/Hisin/p/3152931.html
Copyright © 2011-2022 走看看