STL容器使用DEMO-deque
2009-08-24 16:27
295 查看
Code:
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/08/24
// Describe: STL deque 使用DEMO
//////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <deque>
using namespace std;
typedef deque<int> INT_DEQ;
// 打印Deque
void PrintDeque(INT_DEQ deqInt)
{
for (INT_DEQ::iterator deqIter = deqInt.begin(); deqIter != deqInt.end(); ++deqIter)
{
cout << *deqIter;
}
cout << endl;
}
// 逆向打印Deque
void PrintDequeReverse(INT_DEQ deqInt)
{
for (INT_DEQ::reverse_iterator deqRIter = deqInt.rbegin(); deqRIter != deqInt.rend(); ++deqRIter)
{
cout << *deqRIter;
}
cout << endl;
}
void main(void)
{
INT_DEQ deqInt1;
cout << "deqInt1: "; PrintDeque(deqInt1);
// push_front() & push_back()
{
deqInt1.push_front(3);
deqInt1.push_front(4);
deqInt1.push_back(6);
deqInt1.push_back(9);
cout << "deqInt1 after Push: "; PrintDeque(deqInt1);
}
// reverse()
{
cout << "deqInt1 Reverse: "; PrintDequeReverse(deqInt1);
}
// size()
{
cout << "deqInt1 size: " << deqInt1.size() << endl;
}
// max_size()
{
cout << "deqInt1 max_size: " << deqInt1.max_size() << endl;
}
INT_DEQ deqInt2(5, 5);
cout << "deqInt2(5, 5): "; PrintDeque(deqInt2);
// erase()
{
deqInt2.erase(deqInt2.begin()+2);
cout << "deqInt2 after Erase: "; PrintDeque(deqInt2);
deqInt2.erase(deqInt2.begin()+1, deqInt2.end()-1);
cout << "deqInt2 after Erase: "; PrintDeque(deqInt2);
}
// empty()
{
cout << "deqInt2 empty?: " << boolalpha << deqInt2.empty();
}
INT_DEQ deqInt3(deqInt1);
cout << "deqInt3(deqInt1): "; PrintDeque(deqInt3);
// pop_front() & pop_back()
{
deqInt3.pop_front();
deqInt3.pop_back();
cout << "deqInt3 after Pop: "; PrintDeque(deqInt3);
}
// assign()
{
deqInt3.assign(6, 6);
cout << "deqInt3 after Assign: "; PrintDeque(deqInt3);
}
INT_DEQ deqInt4(deqInt3.begin()+2, deqInt3.end());
cout << "deqInt4(deqInt3.begin()+2, deqInt3.end()): "; PrintDeque(deqInt4);
// at() and operator[]
{
cout << "deqInt4 at(3): " << deqInt4.at(3) << endl;
cout << "deqInt4[2]: " << deqInt4[2] << endl;
}
// front() and back()
{
cout << "deqInt4 front: " << deqInt4.front() << endl;
cout << "deqInt4 back: " << deqInt4.back() << endl;
}
// operator cmp
{
cout << "deqInt4 == deqInt2?: " << boolalpha << (deqInt4 == deqInt2) << endl;
cout << "deqInt4 >= deqInt2?: " << boolalpha << (deqInt4 >= deqInt2) << endl;
}
// swap()
{
deqInt4.swap(deqInt1);
cout << "deqInt1 after Swap: "; PrintDeque(deqInt1);
cout << "deqInt4 after Swap: "; PrintDeque(deqInt4);
}
// clear()
{
deqInt4.clear();
cout << "deqInt4 after Clear: "; PrintDeque(deqInt4);
cout << "deqInt4 size: " << deqInt4.size() << endl;
cout << "deqInt4 empty?: " << boolalpha << deqInt4.empty() << endl;
}
system("pause");
}
//////////////////////////////////////////////////////////////////////////
// CopyRight(c) 2009, YOYO, All Rights Reserved.
// Author: LIN YiQian
// Created: 2009/08/24
// Describe: STL deque 使用DEMO
//////////////////////////////////////////////////////////////////////////
#include <iostream>
#include <deque>
using namespace std;
typedef deque<int> INT_DEQ;
// 打印Deque
void PrintDeque(INT_DEQ deqInt)
{
for (INT_DEQ::iterator deqIter = deqInt.begin(); deqIter != deqInt.end(); ++deqIter)
{
cout << *deqIter;
}
cout << endl;
}
// 逆向打印Deque
void PrintDequeReverse(INT_DEQ deqInt)
{
for (INT_DEQ::reverse_iterator deqRIter = deqInt.rbegin(); deqRIter != deqInt.rend(); ++deqRIter)
{
cout << *deqRIter;
}
cout << endl;
}
void main(void)
{
INT_DEQ deqInt1;
cout << "deqInt1: "; PrintDeque(deqInt1);
// push_front() & push_back()
{
deqInt1.push_front(3);
deqInt1.push_front(4);
deqInt1.push_back(6);
deqInt1.push_back(9);
cout << "deqInt1 after Push: "; PrintDeque(deqInt1);
}
// reverse()
{
cout << "deqInt1 Reverse: "; PrintDequeReverse(deqInt1);
}
// size()
{
cout << "deqInt1 size: " << deqInt1.size() << endl;
}
// max_size()
{
cout << "deqInt1 max_size: " << deqInt1.max_size() << endl;
}
INT_DEQ deqInt2(5, 5);
cout << "deqInt2(5, 5): "; PrintDeque(deqInt2);
// erase()
{
deqInt2.erase(deqInt2.begin()+2);
cout << "deqInt2 after Erase: "; PrintDeque(deqInt2);
deqInt2.erase(deqInt2.begin()+1, deqInt2.end()-1);
cout << "deqInt2 after Erase: "; PrintDeque(deqInt2);
}
// empty()
{
cout << "deqInt2 empty?: " << boolalpha << deqInt2.empty();
}
INT_DEQ deqInt3(deqInt1);
cout << "deqInt3(deqInt1): "; PrintDeque(deqInt3);
// pop_front() & pop_back()
{
deqInt3.pop_front();
deqInt3.pop_back();
cout << "deqInt3 after Pop: "; PrintDeque(deqInt3);
}
// assign()
{
deqInt3.assign(6, 6);
cout << "deqInt3 after Assign: "; PrintDeque(deqInt3);
}
INT_DEQ deqInt4(deqInt3.begin()+2, deqInt3.end());
cout << "deqInt4(deqInt3.begin()+2, deqInt3.end()): "; PrintDeque(deqInt4);
// at() and operator[]
{
cout << "deqInt4 at(3): " << deqInt4.at(3) << endl;
cout << "deqInt4[2]: " << deqInt4[2] << endl;
}
// front() and back()
{
cout << "deqInt4 front: " << deqInt4.front() << endl;
cout << "deqInt4 back: " << deqInt4.back() << endl;
}
// operator cmp
{
cout << "deqInt4 == deqInt2?: " << boolalpha << (deqInt4 == deqInt2) << endl;
cout << "deqInt4 >= deqInt2?: " << boolalpha << (deqInt4 >= deqInt2) << endl;
}
// swap()
{
deqInt4.swap(deqInt1);
cout << "deqInt1 after Swap: "; PrintDeque(deqInt1);
cout << "deqInt4 after Swap: "; PrintDeque(deqInt4);
}
// clear()
{
deqInt4.clear();
cout << "deqInt4 after Clear: "; PrintDeque(deqInt4);
cout << "deqInt4 size: " << deqInt4.size() << endl;
cout << "deqInt4 empty?: " << boolalpha << deqInt4.empty() << endl;
}
system("pause");
}
相关文章推荐
- STL容器使用DEMO-stack
- STL容器使用DEMO-valarray
- C++ STL基本容器的使用(vector、list、deque、map、stack、queue)
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- STL容器使用DEMO-vector
- STL容器使用DEMO-queue
- STL容器使用DEMO-bitset
- stl容器区别(内存布局和使用场合): vector list deque set map
- C++ STL中容器部分 有关deque(双端数组形式)的初始化 元素插入 遍历 以及distance()函数的使用 20180322day12
- STL容器使用DEMO-list
- STL中的容器使用比较(string vector list deque set map)
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用
- STL容器使用DEMO-map
- STL容器使用DEMO-multimap
- STL容器使用DEMO-set
- STL容器使用DEMO-multiset
- STL容器使用DEMO-priority_queue
- STL学习笔记之 (五)容器 vector deque list 使用条件
- C++中防止STL中迭代器失效__map/set等关联容器vector/list/deque等序列容器_如何防止迭代器失效_即erase()的使用
- C++中防止STL中迭代器失效——map/set等关联容器——vector/list/deque等序列容器—如何防止迭代器失效—即erase()的使用