• C++ STL——stack和queue



    注:原创不易,转载请务必注明原作者和出处,感谢支持!

    注:内容来自某培训课程,不一定完全正确!

    栈和队列作为经典的数据结构,我们再熟悉不过了。C++ STL为我们提供了它们的实现,分别是stack和queue。

    一 stack容器

    stack是一种先进后出(First In Last Out)的数据结构,它只有一个出口,stack只允许在栈顶新增元素,移除元素,获得栈顶元素。除了栈顶之外,其它地方不允许存取元素,只有栈顶元素可以被外界使用,也就是说stack不具有遍历行为,没有迭代器。

    stack的特性总结如下:栈不能遍历,不支持随机存取,只能通过top从栈顶获取和删除元素。

    数据存取

    #include <stack>
    
    push();		// 入栈
    pop();		// 出栈
    top();		// 返回栈顶元素
    

    构造函数

    stack<T> s;						// 默认构造函数
    stack(const stack<T> &stk);		// 拷贝构造函数
    

    赋值操作

    stack<T> &operator=(const stack &stk);	// 重载等号操作符
    

    大小操作

    empty();	// 判断栈是否为空
    size();		// 返回堆栈的大小
    

    二 queue容器

    与栈不同的是,队列是一种先进先出(First In First Out)的数据结构。队列的常用API如下所示。

    构造函数

    queue<T> q;					// 默认构造函数
    queue(const queue &que);	// 拷贝构造函数
    

    数据存取、插入和删除

    push(elem);		// 往队尾添加元素
    pop();			// 从对头移除第一个元素
    back();			// 返回队尾元素
    front();		// 返回队首元素
    

    赋值操作

    // 重载等号运算符
    queue &operator=(const queue &q);
    

    大小操作

    empty();	// 判断队列是否为空
    size();		// 返回队列的大小
    
  • 相关阅读:
    用js遍历生成数独可行数据(未优化版本)
    JS生成tips小工具
    Iframe使用
    二级指针作输入的三种内存模型
    货品的进出库模型
    约瑟夫问题
    vector
    CUDA并行简单加法
    第一个CUDA程序
    在Ubuntu下安装、配置和测试cuda[复制]
  • 原文地址:https://www.cnblogs.com/laizhenghong2012/p/11785853.html
Copyright © 2020-2023  润新知