• <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, 評(píng)論 - 9, 引用 - 0
            數(shù)據(jù)加載中……

            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 閱讀(4040) 評(píng)論(2)  編輯 收藏 引用 所屬分類(lèi): c++開(kāi)發(fā)具體技術(shù)

            評(píng)論

            # re: STL vector的使用  回復(fù)  更多評(píng)論   

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

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

            # re: STL vector的使用  回復(fù)  更多評(píng)論   

            size_type是unsigned類(lèi)型比int大多了,可能被截?cái)啵阅鉯聲明為unsigned就可以了@hb
            2008-08-16 12:20 | 沈臻豪(foxtail)
            无码国内精品久久人妻麻豆按摩 | 欧美日韩精品久久久久 | 人妻精品久久无码区| 99蜜桃臀久久久欧美精品网站| 亚洲AV无一区二区三区久久| 国产精品岛国久久久久| 色综合合久久天天给综看| 精品一二三区久久aaa片| 色综合久久中文综合网| 精品人妻伦九区久久AAA片69| 久久久av波多野一区二区| 精品久久亚洲中文无码| 欧美综合天天夜夜久久| 亚洲综合伊人久久大杳蕉| 国产午夜精品理论片久久 | 久久99亚洲综合精品首页| 久久天天躁狠狠躁夜夜avapp| 青青草国产精品久久久久| 囯产精品久久久久久久久蜜桃| 国产精品成人99久久久久91gav| 97久久久精品综合88久久| 一本大道久久东京热无码AV | 国产色综合久久无码有码| 久久青草国产精品一区| 亚洲AV无码久久精品狠狠爱浪潮 | 久久久www免费人成精品| 亚洲综合久久综合激情久久| 久久精品免费一区二区三区| 99re久久精品国产首页2020| 久久受www免费人成_看片中文| 久久精品亚洲乱码伦伦中文| 欧美粉嫩小泬久久久久久久 | 久久99精品免费一区二区| 久久久久久狠狠丁香| 精品蜜臀久久久久99网站| 精品国产乱码久久久久久1区2区| 久久国产亚洲精品| 18岁日韩内射颜射午夜久久成人| 亚洲国产成人久久精品99| 一级做a爰片久久毛片毛片| 亚洲欧洲精品成人久久曰影片|