• <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 閱讀(4041) 評論(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)
            久久精品人人做人人爽97| 国内精品久久久久久久coent| 97精品国产91久久久久久| 日韩亚洲国产综合久久久| 九九久久精品国产| 日韩影院久久| 久久久精品国产| 亚洲av日韩精品久久久久久a | 久久久久久久波多野结衣高潮| 国产精品成人无码久久久久久 | 国产成人综合久久综合| 人妻精品久久无码区| 99久久国产热无码精品免费| 国产精品免费看久久久| 久久精品国产亚洲沈樵| 99久久国产综合精品五月天喷水 | 久久99热这里只频精品6| 色狠狠久久综合网| 97精品国产97久久久久久免费| 久久久久亚洲精品天堂| 久久精品国产精品国产精品污| 久久er国产精品免费观看8| 久久综合成人网| 亚洲国产精品久久电影欧美| 久久精品国产99久久久| 94久久国产乱子伦精品免费| 久久久精品人妻无码专区不卡| 狠狠色丁香久久婷婷综合蜜芽五月| 亚洲国产精品成人久久| 精品久久久久久无码人妻热| 久久久久久国产a免费观看黄色大片 | 色综合久久无码五十路人妻| 久久青青草原精品影院| 久久精品国产清自在天天线| 久久综合久久综合久久| 模特私拍国产精品久久| 久久精品国产一区二区三区日韩| 亚洲v国产v天堂a无码久久| 久久精品国产半推半就| 久久午夜夜伦鲁鲁片免费无码影视| 97热久久免费频精品99|