• <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)
            久久成人精品| 久久久久久亚洲AV无码专区| 日本精品久久久久中文字幕8 | 人妻精品久久久久中文字幕69 | 久久久91精品国产一区二区三区| 国产精品免费久久久久电影网| 要久久爱在线免费观看| 精品永久久福利一区二区| 品成人欧美大片久久国产欧美... 品成人欧美大片久久国产欧美 | 久久无码AV中文出轨人妻| 亚洲成色www久久网站夜月| 99久久精品国产一区二区蜜芽| 久久久久免费精品国产| 久久久精品波多野结衣| 潮喷大喷水系列无码久久精品 | 亚洲精品美女久久久久99小说 | 久久中文字幕人妻丝袜| 99热精品久久只有精品| 国产精品久久久久天天影视| 欧美伊人久久大香线蕉综合| 国产叼嘿久久精品久久| 久久99精品久久久久久| 久久不见久久见免费视频7| 久久久久亚洲av成人网人人软件| 久久996热精品xxxx| 国产AⅤ精品一区二区三区久久| 狼狼综合久久久久综合网| 亚洲精品无码久久久久去q| 久久精品国产男包| 久久狠狠爱亚洲综合影院| 性做久久久久久久久久久| 久久天天躁狠狠躁夜夜av浪潮 | 久久er国产精品免费观看8| 日本精品久久久久中文字幕| 国产91色综合久久免费分享| 久久精品国产亚洲AV麻豆网站| 亚洲国产一成人久久精品| 亚洲中文字幕无码久久精品1 | 久久精品亚洲欧美日韩久久| 久久99精品国产麻豆蜜芽| 欧美色综合久久久久久|