【C++】Stack类与Queue类学习

本文详细介绍了栈和队列的基本操作,包括如何使用C++中的stack和queue类进行数据存储、查找和删除,提供了具体的实例代码及运行结果。

1.Stack类学习

1)建立stack<string>

2)调用push函数将数据压入栈中

3)调用size函数查看当前栈内元素数量

4)调用empty函数检测栈是否为空

5)如果不为空则不断调用pop函数将元素从栈中取出(后入先出)

#include <iostream>
#include <stack>

using namespace std;

int main()
{
    stack<string> stkNameList;

    stkNameList.push("Tsybius"); 
    cout << "Push: " << stkNameList.top() << endl;
    stkNameList.push("Galatea");
    cout << "Push: " << stkNameList.top() << endl;

    cout << "Stack size: " << stkNameList.size() << endl;

    while(!stkNameList.empty())
    {
        cout << "Pop: " << stkNameList.top()  << endl;
        stkNameList.pop();
    }

    return 0;
}

运行结果

223758_bAh6_1425762.png

2.Queue类学习

1)建立queue<string>

2)调用push函数将元素加入queue

3)调用size函数查看队列内元素数量

4)调用front和back函数查看队列首位元素

5)调用empty函数查看队列是否为空

6)如果队列不为空则调用pop函数将元素从队列中取出(先入先出)

#include <iostream>
#include <queue>

using namespace std;

int main()
{
    queue<string> queNameList;

    queNameList.push("Tsybius");
    cout << "Push: Tsybius" << endl;
    queNameList.push("Galatea");
    cout << "Push: Galatea" << endl;
    queNameList.push("Gnaeus");
    cout << "Push: Gnaeus" << endl;

    cout << "Queue Size: " << queNameList.size() << endl;
    cout << "Front: " << queNameList.front() << endl;
    cout << "Back: " << queNameList.back() << endl;

    while(!queNameList.empty())
    {
        cout << "Pop: " << queNameList.front() << endl;
        queNameList.pop();
    }

    return 0;
}

运行结果

223826_ZU0r_1425762.png

END

转载于:https://my.oschina.net/Tsybius2014/blog/293618

C++中,`stack`和`queue`是常用的容器适配器,各自有其特点和使用方法。 ### stack的使用方法 `stack`是一种后进先出(LIFO)的数据结构,专门用于特定的上下文环境。它的底层容器可以是标准的容器模板或特定容器,默认使用`deque`。以下是`stack`的一些常用操作及示例代码: - `stack()`:构造空的栈。 - `empty()`:检测`stack`是否为空。 - `size()`:返回`stack`中元素的个数。 - `top()`:返回栈顶元素的引用。 - `push()`:将元素`val`压入`stack`中。 - `pop()`:将`stack`中尾部的元素弹出。 ```cpp #include <iostream> #include <stack> int main() { std::stack<int> st; // 压入元素 st.push(1); st.push(2); st.push(3); // 检查栈是否为空 if (!st.empty()) { // 输出栈的大小 std::cout << "Stack size: " << st.size() << std::endl; // 访问栈顶元素 std::cout << "Top element: " << st.top() << std::endl; // 弹出栈顶元素 st.pop(); std::cout << "Top element after pop: " << st.top() << std::endl; } return 0; } ``` ### queue的使用方法 `queue`是一种先进先出(FIFO)的数据结构。以下是一个`queue`的使用示例: ```cpp #include <iostream> #include <queue> int main() { std::queue<int> que; // 压入元素 que.push(1); que.push(2); que.push(3); // 访问队首元素 std::cout << "Front element: " << que.front() << std::endl; // 弹出队首元素 que.pop(); std::cout << "Front element after pop: " << que.front() << std::endl; return 0; } ```
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值