• <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 閱讀(1464) 評論(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久久久久中文字幕 | 久久精品国产亚洲av日韩| 久久99久国产麻精品66| 无码久久精品国产亚洲Av影片| 伊人色综合久久天天人手人婷| 蜜臀av性久久久久蜜臀aⅴ麻豆| 青青国产成人久久91网| 久久久久噜噜噜亚洲熟女综合| 久久午夜福利电影| 伊人久久大香线蕉AV色婷婷色 | 日本久久久久亚洲中字幕| 99久久国产综合精品五月天喷水| 久久亚洲天堂| 国内精品久久久久影院优 | 久久99精品国产自在现线小黄鸭| 国产美女久久精品香蕉69| 亚洲午夜久久久精品影院| 波多野结衣久久精品| 久久久久免费精品国产| 亚洲精品国产字幕久久不卡| 久久精品一区二区国产| 久久99精品久久久大学生| 精品久久久久久无码人妻热 | 少妇熟女久久综合网色欲| 亚洲一本综合久久| 久久久久亚洲精品天堂| 亚洲国产小视频精品久久久三级 | 久久乐国产精品亚洲综合| 无码任你躁久久久久久| av午夜福利一片免费看久久| 久久精品国产精品亚洲精品| 性高湖久久久久久久久AAAAA| 久久精品国产99久久久香蕉| 国产成人精品免费久久久久| 亚洲AV无码久久精品狠狠爱浪潮| 欧美亚洲国产精品久久| 久久久久国产一级毛片高清板| 国产精品99久久精品爆乳| 久久综合九色综合网站| 久久久av波多野一区二区| 国产69精品久久久久APP下载|