以下内容仅为当前认识,可能有不足之处,欢迎讨论!
文章目录
- stack容器
- queue容器
stack容器
是什么?功能是什么?常用接口是什么?局限性有哪些?优势又有哪些?
栈容器,先进后出,后进先出。
不允许遍历
接口:
目的 | 函数 |
---|---|
构造函数 | stack <T> stk; |
拷贝构造函数 | stack(const stack &stk); |
赋值操作 | stack& operator=(const stack &stk); |
入栈 | push(elem); |
出栈 | pop(); |
返回栈顶元素 | top(); |
判断容器是否为空 | empty(); |
返回元素个数 | size(); |
示例代码:
void test0411a() {stack<int> stk;for (int i = 0; i < 4; i++) {stk.push(i * 2);}stack<int> stk2 = stk;cout << "访问栈顶元素" << endl;cout << stk.top() << endl;cout << "弹出栈内的"<<stk.size()<<"个元素" << endl;for (int i = 0; i < 4; i++) {cout << "弹出" << stk.top() << "." << endl;stk.pop();}//stk.pop();cout << "栈是否为空?" << endl;cout << stk.empty() << endl;}
运行界面:
queue容器
是什么?功能是什么?常用接口是什么?局限性有哪些?优势又有哪些?
队列容器,就是先进先出,后进后出。
常用接口:
目的 | 函数 |
---|---|
构造函数 | queue<T> que; |
拷贝构造函数 | queue(const queue &que); |
赋值操作 | queue& operator=(const queue &que); |
队尾入队 | push(elem); |
队头出队 | pop(); |
访问队头 | front(); |
访问队尾 | back(); |
查看是否为空? | empty(); |
队列元素个数 | size(); |
代码示例:
void test0411b() {queue<int> que;for (int i = 0; i < 4; i++) {que.push(i * 2 - 1);}queue<int> que2 = que;cout << "赋值后que元素个数:" << que.size() << endl;cout << "赋值后que2元素个数:" << que2.size() << endl;cout << "队头元素访问:" << que.front() << endl;cout << "队尾元素访问:" << que.back() << endl;cout << "删除所有元素" << endl;for (int i = 0; i < 4; i++) {que.pop();}cout << "队列元素是否为空?" << endl;cout << que.empty() << endl;}
运行结果:
以上是我的学习笔记,希望对你有所帮助!
如有不当之处欢迎指出!谢谢!