• <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++開發具體技術

            評論

            # 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)
            久久综合五月丁香久久激情| 国产午夜电影久久| 国产偷久久久精品专区 | 色综合久久88色综合天天| 99久久婷婷国产综合亚洲| 久久精品国产亚洲一区二区三区| 模特私拍国产精品久久| 亚洲成色www久久网站夜月| 久久这里只有精品首页| 亚洲一区精品伊人久久伊人| 亚洲精品美女久久777777| 99久久精品无码一区二区毛片| 噜噜噜色噜噜噜久久| 精品久久久久久国产| 久久www免费人成看片| 久久久91精品国产一区二区三区| 伊人色综合久久天天人守人婷 | 久久人人爽人人人人片av| 嫩草影院久久99| 影音先锋女人AV鲁色资源网久久| 国产综合精品久久亚洲| 精品久久久无码人妻中文字幕豆芽| 三级片免费观看久久| 国产成人综合久久精品尤物| 国产成人久久AV免费| 99精品国产99久久久久久97| 欧美麻豆久久久久久中文| 99久久精品九九亚洲精品| 狠狠久久亚洲欧美专区| 人妻少妇久久中文字幕一区二区| 久久天天躁狠狠躁夜夜av浪潮| 91精品国产色综久久| 精品久久久久久国产| 国产韩国精品一区二区三区久久| 一本色道久久88—综合亚洲精品| 国产精品久久久久久久app| 亚洲精品tv久久久久久久久久| 欧美日韩成人精品久久久免费看| 欧美午夜精品久久久久久浪潮| 久久久久一级精品亚洲国产成人综合AV区| 94久久国产乱子伦精品免费|