• <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 閱讀(4032) 評(píng)論(2)  編輯 收藏 引用 所屬分類: 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類型比int大多了,可能被截?cái)啵阅鉯聲明為unsigned就可以了@hb
            2008-08-16 12:20 | 沈臻豪(foxtail)
            久久国产午夜精品一区二区三区| 午夜视频久久久久一区 | 久久www免费人成看国产片| 久久久91人妻无码精品蜜桃HD| 狠狠色综合网站久久久久久久高清| 久久久av波多野一区二区| 久久露脸国产精品| 久久久久久午夜成人影院| 久久99精品久久久久久野外| 亚洲AV日韩AV天堂久久| 久久影院亚洲一区| 国产综合久久久久| 亚洲精品高清一二区久久| 精品午夜久久福利大片| 国内精品九九久久精品| 激情五月综合综合久久69| 亚洲成色www久久网站夜月| 久久亚洲中文字幕精品一区四 | 国产亚洲精久久久久久无码AV| 中文字幕热久久久久久久| 99久久精品国产一区二区三区 | 国产成人综合久久综合| 久久久久av无码免费网| 色天使久久综合网天天| 久久久久一本毛久久久| 国产99久久久国产精品~~牛| 久久精品国产亚洲av高清漫画| 久久人做人爽一区二区三区| 久久精品无码免费不卡| 18岁日韩内射颜射午夜久久成人| 久久夜色精品国产噜噜亚洲AV| 国内精品人妻无码久久久影院导航| 午夜视频久久久久一区 | 亚洲欧美精品一区久久中文字幕 | 久久99九九国产免费看小说| 精品久久国产一区二区三区香蕉| 狠狠色丁香久久婷婷综| 久久精品一区二区| 久久亚洲精品中文字幕三区| 丰满少妇人妻久久久久久4| 丁香五月综合久久激情|