// vec.cpp -- @CopyLeft by tsaiwn@csie.nctu.edu.tw // sample program to use in C++ STL // see http://www.cplusplus.com/reference/stl/ // -- vector 就是會自己長大的 array #include #include #include #include // stdio.h using namespace std; // vector x; // 來個 整數 vector :-) vector y(3); // y is a 整數 vector of capacity 3 vector *pv = new vector(8); // pv points to a Vector void test( ) { for(int i=1; i <= 18; ++i) { x.push_back(i); cout << "add " << i << ", size: " << x.size( ); cout << ", capacity: " << x.capacity( ); cout << endl; } printf("=== ALL in x: "); for(int i=0; i < x.size( ); ++i) printf("%d ", x[i]); printf("\n"); // use iterator to traverse x printf("=== ALL in x through an iterator:\n "); vector::iterator p; for(p=x.begin( ); p!= x.end( ); ++p) printf("%d ", *p); printf("\n"); } int main( ) { int a[ ]={1,8, 5}; copy(a, a+3, pv->begin()); cout << "pv->capacity( ) = " << pv->capacity( )<< endl; cout << "vector x.capacity = " << x.capacity( )<< "; "; cout << "vector y.capacity = " << y.capacity( )< g++ vec.cpp C:\testc> a pv->capacity( ) = 8 vector x.capacity = 0; vector y.capacity = 3 ==calling test( ) add 1, size: 1, capacity: 1 add 2, size: 2, capacity: 2 add 3, size: 3, capacity: 4 add 4, size: 4, capacity: 4 add 5, size: 5, capacity: 8 add 6, size: 6, capacity: 8 add 7, size: 7, capacity: 8 add 8, size: 8, capacity: 8 add 9, size: 9, capacity: 16 add 10, size: 10, capacity: 16 add 11, size: 11, capacity: 16 add 12, size: 12, capacity: 16 add 13, size: 13, capacity: 16 add 14, size: 14, capacity: 16 add 15, size: 15, capacity: 16 add 16, size: 16, capacity: 16 add 17, size: 17, capacity: 32 add 18, size: 18, capacity: 32 === ALL in x: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 === ALL in x through an iterator: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 === bye === *****************************************/