• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            ACM___________________________

            ______________白白の屋
            posts - 182, comments - 102, trackbacks - 0, articles - 0
            <2010年8月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            2930311234

            常用鏈接

            留言簿(24)

            隨筆分類(332)

            隨筆檔案(182)

            FRIENDS

            搜索

            積分與排名

            最新隨筆

            最新評論

            閱讀排行榜

            評論排行榜

            STL 學習筆記 ( 一. 概述 )

            Posted on 2010-08-31 21:47 MiYu 閱讀(1459) 評論(0)  編輯 收藏 引用 所屬分類: ACM_資料

             MiYu原創, 轉帖請注明 : 轉載自 ______________白白の屋    

             

            幾種常用的容器: map, vector, list, queue,stack, string ( 這個字符串也算個容器 ) 

             

            STL容器的共通操作

             

            一. 初始化(initialization

             

             

            1.產生一個空容器

             

            list<int> l;  vector<int> vec;  map<int,int>.......

             

            尖括號里面可以是系統類型, 也可以是自定義類型, 表示存放在容器中的類型.

             

            2.以另一個容器元素為初值完成初始化

             

              list<int> lst;

             

             

            vector<float> vec ( lst.begin(), lst.end() );  

             

              其他的容器都可以類似地 操作, 當然, 每一種容器都有好幾個構造函數版本,

            具體下面分類介紹.

             

            以數組元素為初值完成初始化 

             

            int array[]={2,4,6,1345};

             

             

            set<int> st ( array, array + sizeof(array) / sizeof(array[0]) );

             

            與大小相關的操作(size operator

             

            size()-返回當前容器的元素數量

             

            empty()-判斷容器是否為空

             

            max_size()-返回容器能容納的最大元素數量

             

            比較(comparison

             

            ==,!=,<,<=,>,>=

             

            比較操作兩端的容器必須屬于同一類型

             

            如果兩個容器內的所有元素按序相等,那么這兩個容器相等

             

            采用字典式順序判斷某個容器是否小于另一個容器

             

            賦值(assignment)和交換(swap

             

            swap用于提高賦值操作效率

             

            容器的共通操作

             

            與迭代器iterator相關的操作

             

            begin()-返回一個迭代器,指向第一個元素

             

            end()-返回一個迭代器,指向最后一個元素之后

             

            rbegin()-返回一個逆向迭代器,指向逆向遍歷的第一個元素

             

            rend()-返回一個逆向迭代器,指向逆向遍歷的最后一個元素之后

             

            元素操作

             

            insert(pos,e)-將元素e的拷貝安插于迭代器pos所指的位置

             

            erase(beg,end)-移除[begend]區間內的所有元素

             

            clear()-移除所有元素

             

            迭代器(iterator)(示例:iterator

             

            ->可遍歷STL容器內全部或部分元素的對象

             

            ->指出容器中的一個特定位置

             

            ->迭代器的基本操作

             

            操作
            效果
            *
            返回當前位置上的元素值。如果該元素有成員,可以通過迭代器以operator ->取用
            ++
            將迭代器前進至下一元素
            ==!=
            判斷兩個迭代器是否指向同一位置
            =
            為迭代器賦值(將所指元素的位置賦值過去)


            迭代器(iterator

             

            所有容器都提供獲得迭代器的函數 

             

            操作
            效果
            begin()
            返回一個迭代器,指向第一個元素
            end()
            返回一個迭代器,指向最后一個元素之后

             

             

            半開區間[beg, end)的好處:

             

            1.為遍歷元素時循環的結束時機提供了簡單的判斷依據(只要未到達end(),循環就可以繼續

             

            2.不必對空區間采取特殊處理(空區間的begin()就等于end()

             

             

            所有容器都提供兩種迭代器

             

            container::iterator讀/寫模式遍歷元素

             

            container::const_iterator只讀模式遍歷元素

             

                    迭代器示例:iterator

             

             

             

             

            迭代器分類

             

            雙向迭代器

             

            ->可以雙向行進,以遞增運算前進或以遞減運算后退。

             

            ->listsetmap提供雙向迭代器

             

            隨機存取迭代器

             

            ->除了具備雙向迭代器的所有屬性,還具備隨機訪問能力。

             

            ->可以對迭代器增加或減少一個偏移量、處理迭代器之間的

             

              距離或者使用<>之類的關系運算符比較兩個迭代器。

             

            ->vectordequestring提供隨機存取迭代器

             

             

             

             

            久久免费美女视频| 欧美综合天天夜夜久久| 久久综合久久综合亚洲| 99久久免费国产精品特黄| 国产69精品久久久久久人妻精品| 久久久久久精品无码人妻| 久久99国产综合精品| 久久福利片| 久久久精品国产sm调教网站 | 久久精品国产亚洲av高清漫画| 久久久精品人妻一区二区三区蜜桃 | 国产亚洲精品美女久久久| 久久99久久成人免费播放| 色综合久久天天综线观看| av无码久久久久不卡免费网站| 亚洲国产成人久久精品99| 精品久久久久久国产潘金莲| 久久久这里有精品中文字幕| 久久香蕉超碰97国产精品| 久久免费99精品国产自在现线 | 久久精品国产亚洲av麻豆小说| 久久天天躁狠狠躁夜夜2020| 99久久精品毛片免费播放| 欧美激情一区二区久久久| 国内精品久久久久久中文字幕| 欧美一区二区三区久久综合| 亚洲国产日韩综合久久精品| 久久国产香蕉视频| 国产精品99久久不卡| 久久中文字幕一区二区| 国内精品伊人久久久久av一坑| 中文字幕无码免费久久| 亚洲国产精品成人久久蜜臀 | 国产日韩久久免费影院| 国内精品久久久久影院优| 久久综合精品国产二区无码| 一本色道久久HEZYO无码| 2020国产成人久久精品| 婷婷久久五月天| 久久久国产视频| 色狠狠久久AV五月综合|