精品伊人久久大香线蕉,开心久久婷婷综合中文字幕,杏田冲梨,人妻无码aⅴ不卡中文字幕

打開APP
userphoto
未登錄

開通VIP,暢享免費電子書等14項超值服

開通VIP
insert 關聯容器
具備四種基本操作:取值(*),遞增(++)。它就是迭代器。

inserter(container,pos):對于關聯式容器,數據元素是有序的,數據元素在容器中的位置只是和元素值有關。在關聯式容器中,提供一個迭代器只是告訴容器確定從什么地方開始搜尋正確的位置,如果提示不正確的話,效率比沒有提示更糟,所以對關聯式容器來說,我們必須慎重

lllllllllllllllllllllllllllllllllllll
1.stl迭代器之配接器( Iterator Adapters)

  迭代器(Iterators)是一個純抽象的概念:任何東西,只要其行為類似迭代器,它就是一個迭代器.也就是說,只有具備有迭代器的四種基本操作:取值(*),遞增(++)

  比較(== !=) 賦值(=)它就是迭代器。因此,你可以自己寫一些類別(classes),具備迭代器接口,但有著各不相同的行為。c++標準庫中提供了數個預先定義的特需迭代器

  也就是所謂的迭代器配接器(Iterator Adapters).迭代器配接器不僅起到了輔助作用,還能賦予整個迭代器抽象概念更強大的能力。

  2.下面簡介三種迭代器配接器(iterator Adapters):(1)insert iterators(安插型迭代器)(2)stream iterators (流迭代器)(3)reverse iterators (逆向迭代器)詳細信息可參考《c++ 標準程序庫》第7.4節。

  1.安插型迭代器(insert iterators)

  安插型迭代器可以使算法以安插(insert)方向而非覆寫(overwrite)方式運作。使用它可以解決目標空間不足問題。也就是說,安插型迭代器會促使目標區間的大小按需要

  增長。安插型迭代器內部將接口重新做了定義:如果你對容器中的某個數據元素設值(assign),會引發“對其所屬的容器內的數據元素的安插(insert)操作”至于插入的位置

  是在容器的最前還是最后,或是特定的位置,它根據三種不同的安插型迭代器(insert iterators)而定。單步前進(step forward)不會造成任何動靜(是一個no-op)

  1)back_inserter(container):使用push_back()在容器尾端安插元素,元素排列順序和安插順序相同。只有在提供了push_back()成員函數的容器才能使back_inserter(container)這樣的容器有:vector,deque,list

  2)front_inserter(container):在內部調用push_front()成員函數,將元素安插于容器中最前端。采用頭插法插入元素,數據元素在容器中的位置和插入時的順序剛好相反。同樣,只有提供了push_front()成員函數的容器才能使用 front_inserter(container)這樣的迭代器有:deque,list.

  3)inserter(container,pos):在內部調用insert()成員函數,將元素插入第二個參數所指的位置。因為在stl所有的容器中都包含有insert()成員函數,所以所有的容器包括關聯式容器都能夠使用 inserter(container, pos).但是,我們知道關聯式容器中數據元素是有序的,數據元素在容器中的位置只是和元素值有關。在關聯式容器中,提供一個迭代器只是告訴容器確定從什么地方開始搜尋正確的位置,如果提示不正確的話,效率比沒有提示更糟,所以對關聯式容器來說,我們必須慎重

  3.c++代碼解釋:以back_inserter()為例

  #include#include#include#include#include#include#includeusing namespace std;int main( int argc ,char **argv){list int_list;//insert elements from 1 to 9 into the first collection : int_listfor(int i = 1; i ::iterator list_pos;cout int_vector;copy(int_list.begin(),int_list.end(),back_inserter(int_vector));//printf all the elements int the int_vectorvector::iterator pos_vector;cout int_set;copy(int_list.begin(),int_list.end(),inserter(int_set,int_set.begin()));set:: iterator pos_printf_list;cout

  4.結果:


本站僅提供存儲服務,所有內容均由用戶發布,如發現有害或侵權內容,請點擊舉報
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
C++STL之迭代器
C++STL學習經典
泛型算法
UC頭條:深入探究C 中的STL
STL之vector的使用
C++容器類常用泛型函數
更多類似文章 >>
生活服務
分享 收藏 導長圖 關注 下載文章
綁定賬號成功
后續可登錄賬號暢享VIP特權!
如果VIP功能使用有故障,
可點擊這里聯系客服!

聯系客服

主站蜘蛛池模板: 会理县| 曲周县| 阿合奇县| 博兴县| 盱眙县| 阜康市| 新晃| 湖南省| 凤阳县| 定兴县| 澄城县| 兴化市| 改则县| 巩留县| 宣武区| 晋江市| 成武县| 万安县| 田东县| 琼结县| 德化县| 原平市| 宿迁市| 阳高县| 桐乡市| 南宫市| 隆德县| 论坛| 巴林右旗| 虎林市| 衢州市| 元朗区| 玛曲县| 安岳县| 罗定市| 泗水县| 南昌县| 克东县| 环江| 仁化县| 烟台市|