• <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精品久久久久久噜噜| 久久久精品国产| 色综合久久中文字幕无码| 国产成人精品久久免费动漫| 日本免费一区二区久久人人澡| 日韩精品无码久久一区二区三| 日韩AV无码久久一区二区| 国产69精品久久久久99| 亚洲国产精品无码久久久蜜芽| 久久国产高清字幕中文| 无码人妻久久一区二区三区蜜桃 | 久久国产高清一区二区三区| 日产精品久久久久久久| 国产精品美女久久久久AV福利| 久久久精品国产免大香伊| 国产精品伊人久久伊人电影| 无码人妻精品一区二区三区久久久 | 97精品伊人久久大香线蕉| 无码专区久久综合久中文字幕| 久久精品成人欧美大片| 久久本道综合久久伊人| 国产午夜久久影院| 久久午夜无码鲁丝片| 波多野结衣久久一区二区 | 人妻少妇精品久久| 99热热久久这里只有精品68| 久久亚洲精品无码AV红樱桃| 欧美激情一区二区久久久| 久久一本综合| 性做久久久久久久久久久| 久久久久国产一区二区三区| 精品久久久久久久久久中文字幕| 99久久精品国内| 日韩一区二区久久久久久| 久久免费精品一区二区| 91精品国产高清久久久久久91| 精品亚洲综合久久中文字幕| 国产欧美一区二区久久| 99精品伊人久久久大香线蕉| 久久综合九色综合97_久久久|