• <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 不同。 前者自身的值可改變,但其所指的值不能改變。  
            而 后者一旦初始化值就不能改變,不可有自增操作。 
            久久久久国产一区二区三区| 999久久久国产精品| 亚洲精品国产第一综合99久久| 国产视频久久| 欧美丰满熟妇BBB久久久| 国产精品久久久久久| 久久中文字幕视频、最近更新| 人妻精品久久久久中文字幕一冢本| 久久水蜜桃亚洲av无码精品麻豆| 久久亚洲精品视频| 久久精品水蜜桃av综合天堂| 久久99这里只有精品国产| 久久国产精品久久| 一本久道久久综合狠狠爱| 国内精品久久久久久久涩爱| 久久99国内精品自在现线| 日本WV一本一道久久香蕉| 99久久超碰中文字幕伊人| 精品久久久久久无码不卡| 狠狠精品干练久久久无码中文字幕 | 久久精品九九亚洲精品| 久久99久久成人免费播放| 男女久久久国产一区二区三区| 久久精品国产福利国产琪琪| 久久电影网2021| 久久香蕉国产线看观看精品yw| 亚洲美日韩Av中文字幕无码久久久妻妇 | 99久久精品国产一区二区| 国产精品99久久久精品无码| 久久久久99精品成人片牛牛影视| 国产精品99精品久久免费| 久久影院综合精品| 99精品国产综合久久久久五月天| 久久久久久亚洲精品影院| 久久精品中文字幕有码| 99久久99久久精品国产| 亚洲国产精品久久久久| 国产精品嫩草影院久久| 久久久精品波多野结衣| 久久精品国产亚洲精品| 久久久久无码中|