#include <iostream>
#include <vector>
#include <stack>
#include <queue>
using namespace std;
int main( ) {
// (VECTOR PART) //
cout << "VECTOR\n " ;
vector< int > v;
// push_back(x)
v.push_back ( 10 ) ;
v.push_back ( 20 ) ;
v.push_back ( 30 ) ;
// size()
cout << "Size: " << v.size ( ) << endl;
// begin() and end()
cout << "Elements: " ;
for ( auto it = v.begin ( ) ; it ! = v.end ( ) ; it++ ) {
cout << * it << " " ;
}
cout << endl;
// pop_back()
v.pop_back ( ) ;
// insert()
v.insert ( v.begin ( ) + 1 , 15 ) ;
// erase()
v.erase ( v.begin ( ) ) ;
cout << "After operations: " ;
for ( int i = 0 ; i < v.size ( ) ; i++ ) {
cout << v[ i] << " " ;
}
cout << endl;
// empty()
cout << "Is empty? " << ( v.empty ( ) ? "Yes" : "No" ) << endl;
// clear()
v.clear ( ) ;
cout << "Size after clear: " << v.size ( ) << endl;
// (STACK PART) //
cout << "\n STACK\n " ;
stack< int > st;
// push(x)
st.push ( 5 ) ;
st.push ( 10 ) ;
st.push ( 15 ) ;
// top()
cout << "Top element: " << st.top ( ) << endl;
// size()
cout << "Size: " << st.size ( ) << endl;
// pop()
st.pop ( ) ;
cout << "Top after pop: " << st.top ( ) << endl;
// empty()
cout << "Is empty? " << ( st.empty ( ) ? "Yes" : "No" ) << endl;
// (QUEUE PART) //
cout << "\n QUEUE\n " ;
queue< int > q;
// push(x)
q.push ( 100 ) ;
q.push ( 200 ) ;
q.push ( 300 ) ;
// front() and back()
cout << "Front: " << q.front ( ) << endl;
cout << "Back: " << q.back ( ) << endl;
// size()
cout << "Size: " << q.size ( ) << endl;
// pop()
q.pop ( ) ;
cout << "Front after pop: " << q.front ( ) << endl;
// empty()
cout << "Is empty? " << ( q.empty ( ) ? "Yes" : "No" ) << endl;
return 0 ;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dmVjdG9yPgojaW5jbHVkZSA8c3RhY2s+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCkgewoKICAgICAgICAgIC8vIChWRUNUT1IgUEFSVCkgLy8KICAgIAogICAgY291dCA8PCAiVkVDVE9SXG4iOwoKICAgIHZlY3RvcjxpbnQ+IHY7CgogICAgLy8gcHVzaF9iYWNrKHgpCiAgICB2LnB1c2hfYmFjaygxMCk7CiAgICB2LnB1c2hfYmFjaygyMCk7CiAgICB2LnB1c2hfYmFjaygzMCk7CgogICAgLy8gc2l6ZSgpCiAgICAKICAgIGNvdXQgPDwgIlNpemU6ICIgPDwgdi5zaXplKCkgPDwgZW5kbDsKCiAgICAvLyBiZWdpbigpIGFuZCBlbmQoKQogICAgCiAgICBjb3V0IDw8ICJFbGVtZW50czogIjsKICAgIGZvcihhdXRvIGl0ID0gdi5iZWdpbigpOyBpdCAhPSB2LmVuZCgpOyBpdCsrKSB7CiAgICAgICAgY291dCA8PCAqaXQgPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIC8vIHBvcF9iYWNrKCkKICAgIAogICAgdi5wb3BfYmFjaygpOwoKICAgIC8vIGluc2VydCgpCiAgICAKICAgIHYuaW5zZXJ0KHYuYmVnaW4oKSArIDEsIDE1KTsKCiAgICAvLyBlcmFzZSgpCiAgICAKICAgIHYuZXJhc2Uodi5iZWdpbigpKTsKCiAgICBjb3V0IDw8ICJBZnRlciBvcGVyYXRpb25zOiAiOwogICAgZm9yKGludCBpID0gMDsgaSA8IHYuc2l6ZSgpOyBpKyspIHsKICAgICAgICBjb3V0IDw8IHZbaV0gPDwgIiAiOwogICAgfQogICAgY291dCA8PCBlbmRsOwoKICAgIC8vIGVtcHR5KCkKICAgIAogICAgY291dCA8PCAiSXMgZW1wdHk/ICIgPDwgKHYuZW1wdHkoKSA/ICJZZXMiIDogIk5vIikgPDwgZW5kbDsKCiAgICAvLyBjbGVhcigpCiAgICAKICAgIHYuY2xlYXIoKTsKICAgIGNvdXQgPDwgIlNpemUgYWZ0ZXIgY2xlYXI6ICIgPDwgdi5zaXplKCkgPDwgZW5kbDsKCgogICAgICAgICAgICAvLyAoU1RBQ0sgUEFSVCkgIC8vCiAgICAgICAgIAogICAgY291dCA8PCAiXG5TVEFDS1xuIjsKCiAgICBzdGFjazxpbnQ+IHN0OwoKICAgIC8vIHB1c2goeCkKICAgIAogICAgc3QucHVzaCg1KTsKICAgIHN0LnB1c2goMTApOwogICAgc3QucHVzaCgxNSk7CgogICAgLy8gdG9wKCkKICAgIAogICAgY291dCA8PCAiVG9wIGVsZW1lbnQ6ICIgPDwgc3QudG9wKCkgPDwgZW5kbDsKCiAgICAvLyBzaXplKCkKICAgIAogICAgY291dCA8PCAiU2l6ZTogIiA8PCBzdC5zaXplKCkgPDwgZW5kbDsKCiAgICAvLyBwb3AoKQogICAgCiAgICBzdC5wb3AoKTsKICAgIGNvdXQgPDwgIlRvcCBhZnRlciBwb3A6ICIgPDwgc3QudG9wKCkgPDwgZW5kbDsKCiAgICAvLyBlbXB0eSgpCiAgICAKICAgIGNvdXQgPDwgIklzIGVtcHR5PyAiIDw8IChzdC5lbXB0eSgpID8gIlllcyIgOiAiTm8iKSA8PCBlbmRsOwoKCiAgICAgICAgICAgICAgLy8gIChRVUVVRSBQQVJUKSAvLwogICAgICAgCiAgICBjb3V0IDw8ICJcblFVRVVFXG4iOwoKICAgIHF1ZXVlPGludD4gcTsKCiAgICAvLyBwdXNoKHgpCiAgICAKICAgIHEucHVzaCgxMDApOwogICAgcS5wdXNoKDIwMCk7CiAgICBxLnB1c2goMzAwKTsKCiAgICAvLyBmcm9udCgpIGFuZCBiYWNrKCkKICAgIAogICAgY291dCA8PCAiRnJvbnQ6ICIgPDwgcS5mcm9udCgpIDw8IGVuZGw7CiAgICBjb3V0IDw8ICJCYWNrOiAiIDw8IHEuYmFjaygpIDw8IGVuZGw7CgogICAgLy8gc2l6ZSgpCiAgICAKICAgIGNvdXQgPDwgIlNpemU6ICIgPDwgcS5zaXplKCkgPDwgZW5kbDsKCiAgICAvLyBwb3AoKQogICAgCiAgICBxLnBvcCgpOwogICAgY291dCA8PCAiRnJvbnQgYWZ0ZXIgcG9wOiAiIDw8IHEuZnJvbnQoKSA8PCBlbmRsOwoKICAgIC8vIGVtcHR5KCkKICAgIAogICAgY291dCA8PCAiSXMgZW1wdHk/ICIgPDwgKHEuZW1wdHkoKSA/ICJZZXMiIDogIk5vIikgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=