美文网首页
黑马C++视频笔记《STL之queue》

黑马C++视频笔记《STL之queue》

作者: 井底蛙蛙呱呱呱 | 来源:发表于2021-01-22 22:09 被阅读0次
队列
/* queue容器
 * queue是一种先进先出(First In First Out,FIFO)的数据结构,他有两个出口.
 *
 * 队列从一端进入数据,另一端出数据。
 * 队列中只有队首和队尾才可以被外界使用,因此队列不允许有遍历行为.
 *
 * 构造函数(采用模板类实现):
 *  - `queue<T> que;`,默认构造形式;
 *  - `queue(const queue &que);`,拷贝构造函数;
 *
 * 赋值操作:
 *  - `queue& operator=(const queue &que);`,重载等号操作符;
 *
 * 数据存取:
 *  - `push(elem);`,从队列尾部往队列添加数据;
 *  - `pop();`,从队列头部移除数据;
 *  - `back();`,返回最后一个元素;
 *  - `front();`,返回第一个元素。
 *
 * 大小操作:
 *  - `empty();`,判断堆栈是否为空;
 *  - `size();`,返回栈的大小。
 */

一个栗子:

class Person{
public:
    Person(string name, int age){
        this->m_name = name;
        this->m_age = age;
    }

    string m_name;
    int m_age;
};


void test001(){
    //创建队列
    queue<Person> q;

    //准备数据
    Person p1("猴哥", 1000);
    Person p2("八戒", 400);
    Person p3("沙师弟", 200);
    Person p4("师傅", 30);

    // 入队
    q.push(p1);
    q.push(p2);
    q.push(p3);
    q.push(p4);
    // 队列无法遍历,所以这里没有用for循环
    while (!q.empty()){
        cout << "队头元素:" << q.front().m_name<< q.front().m_age
            << " 队尾元素:"<<q.back().m_name<<q.back().m_age << endl;
        q.pop();
    }

}

int main(){
    test001();
}

网友评论

      本文标题:黑马C++视频笔记《STL之queue》

      本文链接:https://www.haomeiwen.com/subject/vynezktx.html