- //////////////////////////////////////////////////////////////////////////
- // CopyRight(c) 2009, YOYO, All Rights Reserved.
- // Author: LIN YiQian
- // Created: 2009/08/24
- // Describe: STL vector 使用DEMO
- //////////////////////////////////////////////////////////////////////////
- #include <iostream>
- #include <vector>
- using namespace std;
- typedef vector<int> INT_VEC;
- // 打印Vector
- void PrintVector(INT_VEC vecInt)
- {
- for (INT_VEC::iterator vecIter = vecInt.begin(); vecIter != vecInt.end(); ++vecIter)
- {
- cout << *vecIter ;
- }
- cout << endl;
- }
- // 逆向打印Vector
- void PrintVectorReversse(INT_VEC vecInt)
- {
- for (INT_VEC::reverse_iterator vecRIter = vecInt.rbegin(); vecRIter != vecInt.rend(); ++vecRIter)
- {
- cout << *vecRIter;
- }
- cout << endl;
- }
- void main(void)
- {
- INT_VEC vecInt1;
- cout << "vecInt1(): "; PrintVector(vecInt1);
- // insert()
- {
- vecInt1.insert(vecInt1.begin(), 5);
- vecInt1.insert(vecInt1.begin()+1, 4, 6);
- cout << "vecInt1() after Insert: "; PrintVector(vecInt1);
- }
- INT_VEC vecInt2(10, 3);
- cout << "vecInt2(10, 3): "; PrintVector(vecInt2);
- // erase()
- {
- vecInt2.erase(vecInt2.begin()+5);
- cout << "vecInt2 after Erase: "; PrintVector(vecInt2);
- cout << "vecInt2 size: " << vecInt2.size() << endl;
- vecInt2.erase(vecInt2.begin()+3, vecInt2.end()-3);
- cout << "vecInt2 after Erase: "; PrintVector(vecInt2);
- }
- // size()
- {
- cout << "vecInt2 size: " << vecInt2.size() << endl;
- }
- // capacity()
- {
- cout << "vecInt2 Capacity: " << vecInt2.capacity() << endl;
- }
- // max_size()
- {
- cout << "vecInt2 Max size: " << vecInt2.max_size() << endl;
- }
- INT_VEC vecInt3(vecInt2);
- cout << "vecInt3(vecInt2): "; PrintVector(vecInt3);
- // insert()
- {
- vecInt3.insert(vecInt3.begin(), vecInt1.begin(), vecInt1.end()-1);
- cout << "vecInt1 after Insert: "; PrintVector(vecInt1);
- cout << "vecInt3 after Insert: "; PrintVector(vecInt3);
- }
- // reverse()
- {
- cout << "vecInt3 Reverse: "; PrintVectorReversse(vecInt3);
- }
- INT_VEC vecInt4(vecInt3.begin()+2, vecInt3.end()-5);
- cout << "vecInt4(vecInt3.begin()+2, vecInt3.end()-5): "; PrintVector(vecInt4);
- // assign()
- {
- vecInt4.assign(4, 7);
- cout << "vecInt4 after Assign: "; PrintVector(vecInt4);
- }
- // pop_back() & push_back()
- {
- vecInt4.pop_back();
- cout << "vecInt4 after Pop_Back: "; PrintVector(vecInt4);
- vecInt4.push_back(8);
- cout << "vecInt4 after Push_Back: "; PrintVector(vecInt4);
- }
- // at() & operator[] - Get Value
- {
- cout << "vecInt4 first elem: " << vecInt4.at(0) << endl;
- cout << "vecInt3 first elem: " << vecInt3[0] << endl;
- }
- // operator cmp
- {
- cout << "vecInt4 == vecInt3?: " << boolalpha << (vecInt4 == vecInt3) << endl;
- cout << "vecInt4 < vecInt3?: " << boolalpha << (vecInt4 < vecInt3) << endl;
- }
- // swap()
- {
- vecInt4.swap(vecInt3);
- cout << "vecInt4 after Swap: "; PrintVector(vecInt4);
- cout << "vecInt3 after Swap: "; PrintVector(vecInt3);
- }
- // front() & back()
- {
- cout << "vecInt4 front: " << vecInt4.front() << endl;
- cout << "vecInt4 back: " << vecInt4.back() << endl;
- }
- // empty()
- {
- cout << "vecInt4 Empty?: " << boolalpha << vecInt4.empty() << endl;
- }
- // clear()
- {
- vecInt4.clear();
- cout << "vecInt4 after Clear: "; PrintVector(vecInt4);
- cout << "vecInt4 size: " << vecInt4.size() << endl;
- cout << "vecInt4 Empty?: " << boolalpha << vecInt4.empty() << endl;
- }
- system("pause");
- }