• <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 閱讀(4032) 評論(2)  編輯 收藏 引用 所屬分類: c++開發具體技術

            評論

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

            我用的是VS2005 環境.
            如:for( int i = 0; i < v2.size(); i++ )
            系統提示 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)
            亚洲国产精品久久久久网站| 无码人妻久久一区二区三区免费丨| 99久久久精品免费观看国产| 国产精品久久久久久久久鸭| 国产免费久久久久久无码| 日韩AV毛片精品久久久| 亚洲精品无码成人片久久| 国内精品久久国产大陆| 一本久道久久综合狠狠躁AV| 91视频国产91久久久| 久久久久久午夜精品| 久久精品中文字幕久久| 亚洲中文字幕久久精品无码APP| 国内精品久久九九国产精品| 久久久久久国产精品美女| 9999国产精品欧美久久久久久 | 亚洲精品乱码久久久久久蜜桃不卡| 久久亚洲AV成人无码电影| 久久综合给合综合久久| 国产午夜久久影院| 新狼窝色AV性久久久久久| 亚洲一区精品伊人久久伊人 | 狠狠色婷婷久久综合频道日韩| 久久综合狠狠综合久久| 国产精品美女久久久久AV福利| 亚洲欧美日韩久久精品第一区| 香港aa三级久久三级老师2021国产三级精品三级在 | 精品国产乱码久久久久久1区2区| 久久人人爽人人爽AV片| 国产午夜精品理论片久久 | 国产无套内射久久久国产| 久久er99热精品一区二区| 久久影院综合精品| 久久精品天天中文字幕人妻| 久久久一本精品99久久精品66| 亚洲中文久久精品无码| 无码人妻精品一区二区三区久久久| 久久久久久午夜精品| 久久精品国产亚洲av麻豆图片| 日韩久久久久久中文人妻| 天天爽天天狠久久久综合麻豆|