• <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 不同。 前者自身的值可改變,但其所指的值不能改變。  
            而 后者一旦初始化值就不能改變,不可有自增操作。 
            青青青国产成人久久111网站| 亚洲人成无码久久电影网站| 久久无码人妻一区二区三区 | 欧美精品丝袜久久久中文字幕| 国内精品久久久久| 国产亚州精品女人久久久久久| 一级a性色生活片久久无| 精品熟女少妇av免费久久| 88久久精品无码一区二区毛片| 久久亚洲精品无码aⅴ大香| AV无码久久久久不卡蜜桃| 久久精品综合一区二区三区| 久久成人小视频| 国产精品伊人久久伊人电影| 无码AV波多野结衣久久| 久久亚洲欧洲国产综合| 国产成人久久AV免费| 久久天天躁狠狠躁夜夜2020一| 狠狠色丁香久久婷婷综| 久久亚洲AV成人无码电影| 久久男人中文字幕资源站| 国产精品视频久久久| 久久精品中文字幕大胸| 久久国产成人| 办公室久久精品| 99久久99久久精品国产| 久久电影网2021| 久久精品www| 国产一区二区三区久久| 狠狠色丁香久久婷婷综合五月 | 国产999精品久久久久久| 久久综合给合久久狠狠狠97色 | 亚洲国产另类久久久精品黑人 | 久久青青草原亚洲av无码app| 国内精品久久久久影院亚洲| 久久国产视屏| 久久久无码精品亚洲日韩软件| 国产一久久香蕉国产线看观看| 精品一区二区久久| 国产成人精品久久综合| 久久97久久97精品免视看秋霞|