色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

什么是set?

汽車電子技術 ? 來源:C語言Plus ? 作者:Maye426 ? 2023-02-27 15:42 ? 次閱讀

一、什么是 set?

set 容器,又稱集合容器,即該容器的底層是以紅黑樹變體實現的,是典型的關聯式容器。這意味著,set 容器中的元素可以分散存儲在內存空間里,而不是必須存儲在一整塊連續的內存空間中。跟任意其它類型容器一樣,它能夠存放各種類型的對象。

二、容器特性

1.存儲結構

set是由多個節點(二叉樹中的紅黑樹變體)組成的。

2.集合

set 容器不能在指定位置插入,意味著不支持at(pos)和[]操作。在set中查找元素,效率是非常高的

multiset與set的區別:set中的元素值唯一,每個元素只能出現一次;而multiset中同一元素可以出現多次。

3.雙向迭代器

不支持隨機訪問迭代器,只能從容器中第一個元素或最后一個元素開始遍歷容器,直到找到該位置。

三、基本函數實現

1,構造函數

  • set();創建一個空set
  • set(const set&);復制構造函數
  • set(begin,end);復制[begin,end)區間內的元素,到另一個set中

2.set插入

  • iterator insert(const T& x); 插入元素

3.set刪除

  • iterator erase(iterator it);刪除集合中迭代器指向元素
  • iterator erase(iterator first,iterator last);刪除集合中[first,last)中元素
  • size_type erase(const key_type& elem); 刪除指定的元素
  • void clear();清空集合中所有元素

4.查找函數

  • iterator set.find(elem); //查找elem元素,返回指向elem元素的迭代器。

  • size_type set.count(elem); //返回容器中值為elem的元素個數。對set來說,要么是0,要么是1。對multiset來說,值可能大于1。

  • iterator set.lower_bound(elem); //返回第一個>=elem元素的迭代器。

  • iterator set.upper_bound(elem); // 返回第一個>elem元素的迭代器。

  • reverse_iterator rbegin();反向迭代器,指向最后一個元素

  • pair set.equal_range(elem); //返回一對迭代器,這兩個迭代器分別用于指向set中大于指定元素的第一個元素,以及等于或大于指定元素的第一個元素。

    equal_range返回值pair是什么?

    • pair.second是pair里面的第二個值,是T2類型。
    • pair.first是pair里面的第一個值,是T1類型。
    • pair存放的兩個值的類型,可以不一樣,如T1為int,T2為float。T1,T2也可以是自定義類型。
    • pair譯為對組,實際上就是一個結構體類型,有兩個成員。

5.判斷函數

  • bool empty() const;判斷容器中是否有元素,若無元素,則返回 true;反之,返回 false。

6.大小函數

  • int size() const;返回集合中元素的個數
  • int max_size() const;返回最大可允許的set元素數量值

7.其他函數

  • void swap(set&);交換兩個同類型集合的數據

四、基本用法

#include
#include
using namespace std;
int main()
{
  set<int> s;
  for (int i = 0; i < 10; i++)
  {
    s.insert(rand()%20);
  }
  for (set<int>::iterator it = s.begin(); it != s.end(); it++)
  {
    cout << *it << " ";
  }
  cout <<"\\nset size():"<< s.size() << endl;
  //輸出:0 1 2 4 7 9 14 18  為什么只輸出8個元素呢?
  //因為set只能存在唯一的元素,重復的會被丟掉
  //思考:為什么set里面的元素是有序的呢?
  //因為set是關聯式容器,會默認按照升序進行排列




  //如果找到,返回指向的迭代器,沒有找到返回end()迭代器,所以再輸出之前
  //需要判斷是否找到
  set<int>::iterator it1 = s.find(6);
  if (it1 != s.end())
  {
    cout << *it1 << endl;
  }
  //如果set中有等于4的元素,則返回指向4的迭代器,如果沒有返回第一個
  //大于4的元素的迭代器,沒有找到返回end()迭代器
  it1 = s.lower_bound(4);
  if (it1 != s.end())
  {
    cout << *it1 << endl;
  }
  //如果set中有大于4的元素,返回第一個大于4的元素的迭代器,沒有找
  //到返回end()迭代器
  it1 = s.upper_bound(4);
  if (it1 != s.end())
  {
    cout << *it1 << endl;
  }
  cout <<"------------------我是 C語言Plus 華麗分割線"<
聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 內存
    +關注

    關注

    8

    文章

    3019

    瀏覽量

    74003
  • 容器
    +關注

    關注

    0

    文章

    495

    瀏覽量

    22060
  • SET
    SET
    +關注

    關注

    0

    文章

    17

    瀏覽量

    7949
收藏 人收藏

    評論

    相關推薦

    C++之set/multiset容器

    set/multiset容器又稱為關聯式容器,底層是通過二叉樹實現。set/multiset容器在插入數據時就會做排序處理,默認是從小到大的順序。其中set容器允許插入重復數據,multiset則不做此限制。
    的頭像 發表于 07-17 09:43 ?522次閱讀
    C++之<b class='flag-5'>set</b>/multiset容器

    不同創建線程安全Set的方式

    方法。 使用ConcurrentHashMap工廠方法構造線程安全的HashSet 首先, 我們來看看_ConcurrentHashMap_暴露出來的靜態方法 -- newKeySet() 。此方法返回一個Set的實例,等同于實現了
    的頭像 發表于 09-25 14:20 ?652次閱讀

    MP3set1_48

    MP3set1_48ite
    發表于 04-04 23:26 ?34次下載

    RoHS認證證書樣本-SET證書

    RoHS認證證書樣本-SET證書
    發表于 08-12 11:48 ?49次下載
    RoHS認證證書樣本-<b class='flag-5'>SET</b>證書

    RoHS認證中文報告樣本-SET報告

    RoHS認證中文報告樣本-SET報告
    發表于 08-12 11:49 ?74次下載
    RoHS認證中文報告樣本-<b class='flag-5'>SET</b>報告

    金融網絡中的SET 技術

    SET 協議為網上交易提供了安全技術,使參加交易的各方對網上交易增強了信心,因而大大推動了金融網絡的發展。本文在論述SET 技術原理的同時,還給出了應用案例。
    發表于 09-25 16:22 ?10次下載

    SET協議的一種改進方案

    SET協議在電子商務交易中的應用越來越廣泛,本文通過對SET協議的分析,發現存在的一些缺陷,并在此基礎上提出了一個改進方案,增強了該協議非否認性、公平性、隱私性等方面的性能,
    發表于 03-02 11:45 ?7次下載

    雙柵極SET與MOSFET的混合特性

    用電阻噪聲確定一個低噪聲放大器的特性,由SET 的周期振蕩特性和MOSFET 的閾值電壓特性可構成雙柵極SET/MOSFET 通用方波電路[8],它是構成邏輯門電路的基本單元
    發表于 09-30 11:08 ?1655次閱讀
    雙柵極<b class='flag-5'>SET</b>與MOSFET的混合特性

    ADS-ARM_set相關資料

    ADS-ARM_set相關資料,有需要的下來看看
    發表于 08-16 18:54 ?0次下載

    IAR-ARM_set相關資料

    IAR-ARM_set相關資料,有需要的下來看看
    發表于 08-16 18:54 ?6次下載

    set_max_delay被覆蓋的解決辦法

    XDC描述的時序約束是有優先級的,尤其是涉及到時序例外的約束,如set_clock_groups、set_false_path、set_max_delay和set_multicycle
    的頭像 發表于 09-07 10:53 ?9905次閱讀
    <b class='flag-5'>set</b>_max_delay被覆蓋的解決辦法

    vivado多時鐘周期約束set_multicycle_path使用

    Vivado下set_multicycle_path的使用說明 vivado下多周期路徑約束(set_multicycle_path)的使用,set_multicycle_path一般...
    發表于 12-20 19:12 ?1次下載
    vivado多時鐘周期約束<b class='flag-5'>set</b>_multicycle_path使用

    python之集合set的基本步驟分享

    區別就是remove的元素在set當中沒有的話會報錯,而discard不會
    的頭像 發表于 08-23 10:31 ?2166次閱讀

    逆變器-XC7SET04

    逆變器-XC7SET04
    發表于 02-14 18:39 ?0次下載
    逆變器-XC7<b class='flag-5'>SET</b>04

    python中的set類型

    Python中的set類型是一種無序、可變的集合數據類型,它的主要特點是不允許重復元素的存在。本文將詳盡、詳實、細致地介紹set類型的使用場景、常用操作以及與其他類型的比較等方面,以幫助讀者全面了解
    的頭像 發表于 11-21 16:25 ?869次閱讀
    主站蜘蛛池模板: 黄色三级视频在线观看| 中文字幕亚洲第一| 亚洲精品拍拍央视网出文| 中文字幕亚洲无线码一区| ae58老司机福利| 国产精品麻豆a啊在线观看| 久久最新地址获取| 午夜国产羞羞视频免费网站| 在线观看qvod| 国产成人教育视频在线观看| 久久婷五月综合色啪首页| 三级视频黄色| 中文人妻熟妇精品乱又伦| 国产不卡免费| 久久国产精品无码视欧美| 日日久久狠狠8888偷偷色| 亚洲综合AV色婷婷五月蜜臀| vivoe另类| 久久re亚洲在线视频| 四川少妇大战4黑人| 97视频精品| 九九免费的视频| 肉肉的各种姿势高H细文| 在线亚洲中文字幕36页| 国产在线高清视频| 天天夜夜草草久久亚洲香蕉| 成人国产免费| 求个av网站| WW.国产人妻人伦精品| 免费伦理片网站| 91麻精品国产91久久久久| 花蝴蝶高清观看免费| 亚洲国产精品VA在线看黑人| 国产99青草全福视在线| 日韩中文字幕亚洲无线码| 波野结衣qvod| 青草在线观看视频| av在线色| 青青久在线| 插骚妇好爽好骚| 色欲AV色欲AV久久麻豆|