• <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>
            posts - 131, comments - 12, trackbacks - 0, articles - 0
              C++博客 :: 首頁 :: 新隨筆 :: 聯系 :: 聚合  :: 管理
            標準庫 vector 容器 
            使用 vector 是必須包含頭文件 <vector> 
            # include <vector>


            vector 是個類模板 可以存放不同的數據類型,包括用戶自定義的類型
            聲明格式如下:
             class_template_name<type_name> obj_name;
            ex: 
             vector<int> int_vec;   //int_vec 對象用來存發整型類的數據


            vector 對象的定義和初始化
                vector 類的構造函數有如下幾種:
                  vector<type> v1; 
                  vector<type> v2(v1);   對象v2是v1的副本
                  vector<type> v3(n, i);   v3包含n 個值為i 的元素 
                  vector<type> v4(n);   v4包含n個 值初始化 的副本
             
            **值初始化 
               沒有指定元素的初始化形式,那么標準庫將自行提供一個元素初始化的值
            進行 值初始化(value initializationd)具體類型取決于vector存儲的類型。
             ex:   vector<int> ivec(10); //10 elements, each initialized to 0;
             
             vector 類中成員函數與基本操作
                1.判斷容器是否為空,返回值為 bool類型       obj.empty();         
                2.返回容器中元素的個數                      obj.size();
                3.在容器末尾增加一個值為 type_value 的元素  obj.push_back(type_value);
                4.支持類似于數組的操作
                    返回容器中位值為n的元素  obj[n]
                    直接賦值替換 obj1 = obj2;  
                    支持比較操作符   ==  !=  < > 
            **  vector的下標操作與數組的不同之處
              vector 只能通過對確知的元素進行操作
              Ex:  vector<int>  obj;  //obj為空。
                   obj[0];  //error    
                   
            標準庫 iterator 迭代器
               除了用數組下標去訪問,遍歷容器中的元素,還可以通過使用迭代器(iterator)
               iterator 是C++標準庫中用來控制對容器元素的訪問的特定數據類型。有些容器既支持
            下標訪問,也可以用 iterator。 迭代器是更加通用的方法。每種容器都對應有不同的迭代器。


            每種容器都對應 返回iterator數據成員的操作 begin() 和 end()
            ex:  //obj is not empty
                 vector<int>::iterator iter = obj.begin()  //用begin()返回迭代器指向容器的第一個元素  


            end() 返回的是容器的最后一個元素的下一位。當容器為空時,和begin()的返回值相同
            obj.end() 起一個哨兵(sentinel)的作用。表示已處理完容器中的所有元素。


            **  vector的迭代器支持自增和解引用操作
                   *iter = 0;   obj[0] = 0;  // obj[0] 和 iter 指的是同一個元素


            用迭代器iterator編寫 loop
            for( vecotr<int>::iterator iter = int_vec.begin(); 
                    iter != int_vec.end(); ++iter ){
                 *iter = 0;   //將容器 int_vec 中所有元素值都置為0。              
            }


            const_iterator  
            該類型迭代器指向的元素解引用后為 const類型的對象 不能被重寫。
            const_iterator 類型與 const 類的 iterator 不同。 前者自身的值可改變,但其所指的值不能改變。  
            而 后者一旦初始化值就不能改變,不可有自增操作。 
            久久精品人人做人人妻人人玩| 一级做a爰片久久毛片16| 97久久国产亚洲精品超碰热 | 久久无码人妻一区二区三区| 久久精品国产亚洲AV香蕉| 久久综合久久综合九色| 囯产精品久久久久久久久蜜桃 | 久久亚洲精品成人无码网站| 国产69精品久久久久99尤物| 亚洲国产欧洲综合997久久| 国产免费久久精品99久久| 久久综合香蕉国产蜜臀AV| 青青草原综合久久大伊人| 久久人妻少妇嫩草AV无码蜜桃| 国产精品一区二区久久| 热re99久久精品国99热| 中文字幕日本人妻久久久免费 | 亚洲精品无码久久千人斩| 色欲久久久天天天综合网 | 精品久久久久久久久久久久久久久 | 久久久国产打桩机| 日韩人妻无码一区二区三区久久 | 精品国产青草久久久久福利 | 亚洲国产成人久久笫一页| 久久久久亚洲国产| 久久亚洲春色中文字幕久久久 | 国产毛片久久久久久国产毛片 | 狠狠色丁香久久婷婷综| 久久91精品国产91久久麻豆| 久久国产香蕉一区精品| 久久强奷乱码老熟女网站| 99久久婷婷免费国产综合精品| 91精品国产高清久久久久久国产嫩草 | 97精品国产91久久久久久| 岛国搬运www久久| 国产精品久久久久久久人人看| 久久综合精品国产二区无码| 亚洲国产精品久久久久婷婷老年| 理论片午午伦夜理片久久| 青青草原精品99久久精品66| 久久国产视频99电影|