• <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>
            隨筆 - 40, 文章 - 0, 評論 - 9, 引用 - 0
            數據加載中……

            STL vector的使用

              http://www.cppreference.com/cppvector/index.html
            assign
            Syntax:
              #include <vector>
            void assign( size_type num, const TYPE& val );
            void assign( input_iterator start, input_iterator end );
            

            The assign() function either gives the current vector the values from start to end, or gives it num copies of val.

            This function will destroy the previous contents of the vector.

            For example, the following code uses assign() to put 10 copies of the integer 42 into a vector:

            vector<int> v;
             v
            .assign( 10, 42 );
             
            for( int i = 0; i < v.size(); i++ ) {
               cout
            << v[i] << " ";
             
            }
             cout
            << endl;            

            The above code displays the following output:

            42 42 42 42 42 42 42 42 42 42          

            The next example shows how assign() can be used to copy one vector to another:

            vector<int> v1;
             
            for( int i = 0; i < 10; i++ ) {
               v1
            .push_back( i );
             
            }              

             vector
            <int> v2;
             v2
            .assign( v1.begin(), v1.end() );            

             
            for( int i = 0; i < v2.size(); i++ ) {
               cout
            << v2[i] << " ";
             
            }
             cout
            << endl;            

            When run, the above code displays the following output:

            0 1 2 3 4 5 6 7 8 9     



            Vector constructors
            Syntax:
              #include <vector>
            vector();
            vector( const vector& c );
            vector( size_type num, const TYPE& val = TYPE() );
            vector( input_iterator start, input_iterator end );
            ~vector();
            

            The default vector constructor takes no arguments, creates a new instance of that vector.

            The second constructor is a default copy constructor that can be used to create a new vector that is a copy of the given vector c.

            The third constructor creates a vector with space for num objects. If val is specified, each of those objects will be given that value. For example, the following code creates a vector consisting of five copies of the integer 42:

            vector<int> v1( 5, 42 );         

            The last constructor creates a vector that is initialized to contain the elements between start and end. For example:

            // create a vector of random integers
             cout
            << "original vector: ";
             vector
            <int> v;
             
            for( int i = 0; i < 10; i++ ) {
               
            int num = (int) rand() % 10;
               cout
            << num << " ";
               v
            .push_back( num );
             
            }
             cout
            << endl;            

             
            // find the first element of v that is even
             vector
            <int>::iterator iter1 = v.begin();
             
            while( iter1 != v.end() && *iter1 % 2 != 0 ) {
               iter1
            ++;
             
            }              

             
            // find the last element of v that is even
             vector
            <int>::iterator iter2 = v.end();
             
            do {
               iter2
            --;
             
            } while( iter2 != v.begin() && *iter2 % 2 != 0 );              

             
            // only proceed if we find both numbers
             
            if( iter1 != v.end() && iter2 != v.begin() ) {
               cout
            << "first even number: " << *iter1 << ", last even number: " << *iter2 << endl;        

               cout
            << "new vector: ";
               vector
            <int> v2( iter1, iter2 );
               
            for( int i = 0; i < v2.size(); i++ ) {
                 cout
            << v2[i] << " ";
               
            }
               cout
            << endl;
             
            }

            When run, this code displays the following output:

            original vector: 1 9 7 9 2 7 2 1 9 8
             first even number
            : 2, last even number: 8
             
            new vector: 2 7 2 1 9          

            All of these constructors run in linear time except the first, which runs in constant time.

            The default destructor is called when the vector should be destroyed.

             

            posted on 2007-12-11 14:26 閱讀(4043) 評論(2)  編輯 收藏 引用 所屬分類: c++開發(fā)具體技術

            評論

            # re: STL vector的使用  回復  更多評論   

            我用的是VS2005 環(huán)境.
            如:for( int i = 0; i < v2.size(); i++ )
            系統(tǒng)提示 int 和 size_type 轉換 會丟失數據.

            望看到回復 hanbo79@sogou.com
            2008-08-16 11:25 | hb

            # re: STL vector的使用  回復  更多評論   

            size_type是unsigned類型比int大多了,可能被截斷,所以你i聲明為unsigned就可以了@hb
            2008-08-16 12:20 | 沈臻豪(foxtail)
            亚洲v国产v天堂a无码久久| 精品久久人人爽天天玩人人妻| 久久久久久国产精品无码超碰| 国产精品欧美久久久天天影视 | 久久91综合国产91久久精品 | 一本久久免费视频| 久久婷婷五月综合97色| 国产精品欧美久久久久无广告 | 久久九九有精品国产23百花影院| 久久精品亚洲乱码伦伦中文 | 久久伊人色| 久久精品国产亚洲av麻豆色欲| 久久精品国产精品青草| 亚洲第一极品精品无码久久| 99久久精品国产一区二区| 久久久久久久精品成人热色戒| 99久久精品这里只有精品| 亚洲欧美日韩久久精品第一区| 久久91精品综合国产首页| www久久久天天com| 无码伊人66久久大杳蕉网站谷歌 | 欧美亚洲国产精品久久高清| 成人精品一区二区久久| 久久99精品久久久久久动态图 | 国产2021久久精品| 狠狠色丁香婷综合久久| 色88久久久久高潮综合影院| 午夜福利91久久福利| 久久人人爽人人澡人人高潮AV| 一级做a爰片久久毛片人呢| 国产精品久久波多野结衣| 亚洲va国产va天堂va久久| 无码国内精品久久人妻蜜桃| 久久久久久精品无码人妻| 国产精品久久久久久久app| 香蕉久久影院| 亚洲日本久久久午夜精品| 久久精品国产2020| 久久久久亚洲精品日久生情| 97精品依人久久久大香线蕉97| 日产精品99久久久久久|