以下内容仅为当前认识,可能有不足之处,欢迎讨论!
文章目录
- 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;
}
运行结果:
以上是我的学习笔记,希望对你有所帮助!
如有不当之处欢迎指出!谢谢!