    1 // vec.cpp  -- @CopyLeft by tsaiwn@csie.nctu.edu.tw
    2 // sample of using <vector> in STL -- vector NO|ۤvj array
    3 #include <iostream>
    4 #include <vector>
    5 #include <cstdio>
    6 using namespace std;
    7 //
    8 vector<int> x;    // ӭ  vector :-) 
    9 vector<int> y(3);  // y is a  vector of capacity 3
   10 void test( ) {
   11    for(int i=1; i <= 18; ++i) {
   12       x.push_back(i);
   13       cout << "add " << i << ", size: " << x.size( );
   14       cout << ", capacity: " << x.capacity( );
   15       cout << endl;
   16    }
   17    printf("=== ALL in x: ");
   18    for(int i=0; i < x.size( ); ++i)  printf("%d ", x[i]);
   19    printf("\n");
   20    // use iterator to traverse x
   21    printf("=== ALL in x through an iterator:\n      ");
   22    vector<int>::iterator p;
   23    for(p=x.begin( ); p!= x.end( ); ++p)
   24       printf("%d ", *p);
   25    printf("\n");
   26 }
   27 ///
   28 int main( ) {
   29    cout << "vector x.capacity = " << x.capacity( )<< ";  ";
   30    cout << "vector y.capacity = " << y.capacity( )<<endl;
   31    cout << "==calling test( )" << endl;
   32    test( );
   33    cout << "=== bye ===\n";
   34    return 0;
   35 }
   36 /****
   37 vector x.capacity = 0;  vector y.capacity = 3
   38 ==calling test( )
   39 add 1, size: 1, capacity: 1
   40 add 2, size: 2, capacity: 2
   41 add 3, size: 3, capacity: 4
   42 add 4, size: 4, capacity: 4
   43 add 5, size: 5, capacity: 8
   44 add 6, size: 6, capacity: 8
   45 add 7, size: 7, capacity: 8
   46 add 8, size: 8, capacity: 8
   47 add 9, size: 9, capacity: 16
   48 add 10, size: 10, capacity: 16
   49 add 11, size: 11, capacity: 16
   50 add 12, size: 12, capacity: 16
   51 add 13, size: 13, capacity: 16
   52 add 14, size: 14, capacity: 16
   53 add 15, size: 15, capacity: 16
   54 add 16, size: 16, capacity: 16
   55 add 17, size: 17, capacity: 32
   56 add 18, size: 18, capacity: 32
   57 === ALL in x: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
   58 === ALL in x through an iterator:
   59       1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
   60 === bye ===
   61 
   62 C:\testc>
   63 *****************************************/
