• <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 不同。 前者自身的值可改變,但其所指的值不能改變。  
            而 后者一旦初始化值就不能改變,不可有自增操作。 
            久久天堂电影网| 久久涩综合| 国产精品久久久久久久久免费| 久久亚洲精品国产亚洲老地址| 久久综合亚洲鲁鲁五月天| 99久久精品国产免看国产一区| 99久久精品免费看国产免费| 久久午夜免费视频| 大伊人青草狠狠久久| 亚洲精品成人网久久久久久| 91久久精品91久久性色| 国产精品亚洲综合久久| 久久国产免费观看精品| 99久久国产综合精品女同图片| 四虎国产永久免费久久| 一本色道久久综合亚洲精品| 国产99久久久国产精品~~牛| 中文字幕乱码人妻无码久久| 久久e热在这里只有国产中文精品99| 97久久超碰国产精品旧版| 久久综合成人网| 久久成人18免费网站| 日本免费久久久久久久网站| 久久青青草原亚洲av无码app | 激情综合色综合久久综合| 久久人人妻人人爽人人爽| 亚洲成av人片不卡无码久久| 亚洲午夜精品久久久久久人妖| 囯产精品久久久久久久久蜜桃| 中文字幕无码久久久| 久久综合精品国产一区二区三区| 国产精品va久久久久久久| 国产精品成人久久久久三级午夜电影| 久久精品成人免费网站| 热久久国产精品| 国产ww久久久久久久久久| 久久综合九色综合欧美狠狠| 国产精品久久久久久久午夜片 | 国内精品免费久久影院| 99久久精品免费| 久久AAAA片一区二区|