• <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提供隨機存取迭代器

             

             

             

             

            色综合久久久久无码专区| 精品无码久久久久久久久久| 久久亚洲熟女cc98cm| 无码人妻久久一区二区三区蜜桃 | AV无码久久久久不卡蜜桃| 色综合久久久久网| 亚洲日本久久久午夜精品| 99麻豆久久久国产精品免费| 久久久久成人精品无码| 色偷偷偷久久伊人大杳蕉| 国产AⅤ精品一区二区三区久久| 久久无码高潮喷水| www亚洲欲色成人久久精品| 日日躁夜夜躁狠狠久久AV| 久久人人爽人人爽人人片AV麻豆| 日韩精品无码久久久久久| 久久夜色精品国产| 91精品国产91热久久久久福利| 久久久无码精品亚洲日韩京东传媒 | 亚洲国产精品一区二区三区久久| 国产亚洲欧美精品久久久| 伊人久久一区二区三区无码| 精品国产热久久久福利| 国产精品美女久久久久网| 一级做a爰片久久毛片看看| 久久久久久A亚洲欧洲AV冫| 99久久99久久| 国产精品福利一区二区久久| 亚洲精品无码久久久久久| 久久无码国产专区精品| 国产精品一区二区久久精品涩爱| 国产精品日韩深夜福利久久| 久久国产精品久久久| 久久精品国产99国产精品澳门 | 久久久久久伊人高潮影院| 亚洲国产成人久久综合碰| 亚洲美日韩Av中文字幕无码久久久妻妇| 国产午夜精品理论片久久| 久久精品无码一区二区三区免费 | 无码AV波多野结衣久久| 久久精品夜夜夜夜夜久久|