黑馬C++視頻筆記《STL之queue》

隊(duì)列
/* queue容器
 * queue是一種先進(jìn)先出(First In First Out,F(xiàn)IFO)的數(shù)據(jù)結(jié)構(gòu),他有兩個(gè)出口.
 *
 * 隊(duì)列從一端進(jìn)入數(shù)據(jù),另一端出數(shù)據(jù)。
 * 隊(duì)列中只有隊(duì)首和隊(duì)尾才可以被外界使用,因此隊(duì)列不允許有遍歷行為.
 *
 * 構(gòu)造函數(shù)(采用模板類實(shí)現(xiàn)):
 *  - `queue<T> que;`,默認(rèn)構(gòu)造形式;
 *  - `queue(const queue &que);`,拷貝構(gòu)造函數(shù);
 *
 * 賦值操作:
 *  - `queue& operator=(const queue &que);`,重載等號操作符;
 *
 * 數(shù)據(jù)存?。? *  - `push(elem);`,從隊(duì)列尾部往隊(duì)列添加數(shù)據(jù);
 *  - `pop();`,從隊(duì)列頭部移除數(shù)據(jù);
 *  - `back();`,返回最后一個(gè)元素;
 *  - `front();`,返回第一個(gè)元素。
 *
 * 大小操作:
 *  - `empty();`,判斷堆棧是否為空;
 *  - `size();`,返回棧的大小。
 */

一個(gè)栗子:

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

    string m_name;
    int m_age;
};


void test001(){
    //創(chuàng)建隊(duì)列
    queue<Person> q;

    //準(zhǔn)備數(shù)據(jù)
    Person p1("猴哥", 1000);
    Person p2("八戒", 400);
    Person p3("沙師弟", 200);
    Person p4("師傅", 30);

    // 入隊(duì)
    q.push(p1);
    q.push(p2);
    q.push(p3);
    q.push(p4);
    // 隊(duì)列無法遍歷,所以這里沒有用for循環(huán)
    while (!q.empty()){
        cout << "隊(duì)頭元素:" << q.front().m_name<< q.front().m_age
            << " 隊(duì)尾元素:"<<q.back().m_name<<q.back().m_age << endl;
        q.pop();
    }

}

int main(){
    test001();
}
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容