• <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)
            久久电影网| 免费国产99久久久香蕉| 亚洲国产精品无码久久久蜜芽| 久久99精品久久久久久hb无码 | 亚洲国产精品热久久| 久久久久免费精品国产| 亚洲欧美日韩精品久久亚洲区 | 久久久国产亚洲精品| 国产福利电影一区二区三区久久老子无码午夜伦不 | 日韩久久久久中文字幕人妻| 狠狠色婷婷综合天天久久丁香| 一本色道久久88—综合亚洲精品| 思思久久99热只有频精品66| 精品久久久久久99人妻| 污污内射久久一区二区欧美日韩| 午夜精品久久久久9999高清| 欧美久久综合九色综合| 性高朝久久久久久久久久| 99久久精品免费看国产一区二区三区| 亚洲中文字幕无码久久综合网 | 久久久久人妻一区精品果冻| 久久噜噜久久久精品66| 欧美牲交A欧牲交aⅴ久久| 亚洲国产天堂久久综合网站| 久久99精品国产麻豆宅宅| 99久久国语露脸精品国产| 久久99毛片免费观看不卡| 无码任你躁久久久久久老妇App| 精品久久久久久国产潘金莲| 青青草原综合久久大伊人导航| 精品久久久久久久国产潘金莲 | 久久久久久无码国产精品中文字幕| 亚洲国产精品成人AV无码久久综合影院 | 国产免费久久精品99re丫y| 精品久久久久久国产免费了| 一本久道久久综合狠狠爱| 久久人妻少妇嫩草AV蜜桃| 人妻无码精品久久亚瑟影视| 欧美亚洲国产精品久久| 久久婷婷国产剧情内射白浆| 亚洲va中文字幕无码久久不卡|