stack的基礎用法,函數參數,典型應用,實現機制
stack:[stæk]
stack([stæk] )堆棧是一種容器適配器,專門設計用於在LIFO(last-in first-out)環境(後進先出)中操作,在該環境中,僅從容器的一端插入和提取元素。
堆棧被實現爲容器適配器,它們是使用特定容器類的封裝對象作爲其基礎容器的類,提供了一組特定的成員函數來訪問其元素。 元素從特定容器的“後部”被推入/彈出,這被稱爲堆棧的頂部。
stack原理示意圖
stack理解
stack用法
基礎容器可以是任何標準容器類模板或某些其他專門設計的容器類。 容器應支持以下操作:
成員函數 | 功能 |
---|---|
empty | 測試堆棧是否爲空 |
size | 返回堆棧大小 |
push | 在堆棧頂部插入元素,調用底層對象成員push_back |
pop | 移除堆棧頂部元素,調用底層容器對象成員pop_back |
top | 返回堆棧頂部的元素即最後插入容器的元素,調用底層容器對象成員back |
emplace | 在堆棧頂部構造和插入元素,調用底層容器對象成員empalce_back |
swap | 用新的內容交換容器適配器(*this)的內容。 |
stack對象的默認構造
stack採用模板類實現,stack對象的默認構造形式:
stack<T> stkT;
stack對象的拷貝構造與賦值
//拷貝構造函數
stack(const stack &stk);
//重載等號操作符
stack& operator=(const stack &stk);
stack<int>stkInt1,stkInt2,stkInt3;
for(int i=0;i<10;i++){
stkInt1.push(i);
}
stkInt2(stkInt1);
stkInt3 = stkInt2;
stack容器實現