• <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)
            日本久久久久亚洲中字幕 | 91久久精品国产成人久久| 天天爽天天狠久久久综合麻豆| 久久婷婷国产综合精品| 99久久夜色精品国产网站| 久久久久香蕉视频| 久久99国产综合精品| 久久久久久国产a免费观看不卡| 亚洲精品国产第一综合99久久| 久久国产免费观看精品3| 久久青青草原精品国产不卡| 久久精品天天中文字幕人妻| 久久久无码精品亚洲日韩软件| 香蕉久久夜色精品升级完成| 久久久久久A亚洲欧洲AV冫| 久久精品国产亚洲av水果派| 一本久久免费视频| 久久精品无码免费不卡| 久久精品无码午夜福利理论片 | 超级97碰碰碰碰久久久久最新| 99久久婷婷免费国产综合精品| 狠狠色丁香久久婷婷综合_中 | 国产产无码乱码精品久久鸭| 亚洲国产成人久久笫一页| 午夜不卡888久久| 久久精品视频网| 精品久久久噜噜噜久久久| 久久久久亚洲AV无码专区首JN| 久久久久人妻一区精品| 精品视频久久久久| 精品久久人人爽天天玩人人妻| 久久精品一区二区三区不卡| 69SEX久久精品国产麻豆| 久久午夜伦鲁片免费无码| 日本欧美久久久久免费播放网| 伊人久久大香线蕉AV色婷婷色| 2021国产精品午夜久久| 99久久国产亚洲综合精品| 亚洲精品国产美女久久久| 99精品国产99久久久久久97| 亚洲国产精品18久久久久久|