• <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久久久国产精品~~牛| 999久久久国产精品| 久久精品国产亚洲麻豆| 久久精品国产亚洲5555| 少妇人妻综合久久中文字幕| 亚洲精品无码久久久影院相关影片| 久久久亚洲欧洲日产国码aⅴ | 日韩精品久久无码人妻中文字幕 | 精品久久久久中文字幕一区| 久久久精品国产sm调教网站| 91久久香蕉国产熟女线看| 亚洲另类欧美综合久久图片区| 久久久久久综合一区中文字幕| 久久WWW免费人成一看片| 久久99亚洲综合精品首页| 区久久AAA片69亚洲| 办公室久久精品| 久久超乳爆乳中文字幕| 久久经典免费视频| 9191精品国产免费久久| 欧美亚洲国产精品久久| 久久久久国产精品嫩草影院| 国产∨亚洲V天堂无码久久久| 久久久久九九精品影院| 久久精品国产福利国产秒| 亚洲va中文字幕无码久久| 怡红院日本一道日本久久 | 久久人人爽人人爽人人片AV高清| 99热热久久这里只有精品68| 粉嫩小泬无遮挡久久久久久| 久久婷婷五月综合色奶水99啪| 青青青青久久精品国产| 久久久久亚洲av无码专区喷水| 国产成人久久精品一区二区三区| 亚洲国产小视频精品久久久三级 | 国产香蕉97碰碰久久人人| 狠狠色丁香久久婷婷综合五月| 麻豆亚洲AV永久无码精品久久 | 一本色道久久综合| 日韩影院久久|