Stack的常用基本操作:
- s.push() // 壓棧
- s.emplace() // 插入,相當於push(目前掌握的唯一區別是emplace可以自行呼叫建構函式,push不行)
- s.empty() // 判斷棧空
- s.top() // 訪問棧頂元素
- s.pop() // 退棧
- s.size() // 記錄棧大小
/*** * stack的基本操作 * Jan 1 2019 */ int main() { stack<double> s; // 定義一個棧 for (int i = 0; i < 10; i++) s.push(i); // 壓棧 s.emplace(10); // 相當於插入push while (!s.empty()) // 判斷棧空 { printf("%lf\n", s.top()); // 訪問棧頂元素 s.pop(); // 彈出棧 } cout << "棧內的元素的個數為:" << s.size() << endl; // 棧大小 return 0; }
/// 輸出結果 10.000000 9.000000 8.000000 7.000000 6.000000 5.000000 4.000000 3.000000 2.000000 1.000000 0.000000 棧內的元素的個數為:0
Queue的常用基本操作:
- q.push() // 入隊
- q.emplace() // 插入,相當於push(區別同Stack)
- q.empty() // 判斷隊空
- q.front() // 訪問隊頭元素
- q.back() // 訪問隊尾元素
- q.pop() // 出隊
- q.size() // 記錄隊大小
1 /*** 2 * queue的基本操作 3 * Jan 1 2019 4 */ 5 6 7 int main() { 8 queue<double> q; // 定義一個佇列 9 for (int i = 0; i < 10; i++) 10 q.push(i); // 入隊 11 q.emplace(10); // 相當於插入push 12 printf("%lf\n", q.back()); // 訪問隊尾元素 13 while (!q.empty()) // 判斷隊空 14 { 15 printf("%lf\n", q.front()); // 訪問隊頭元素 16 q.pop(); // 出隊 17 } 18 cout << "隊內的元素的個數為:" << q.size() << endl; // 佇列大小 19 return 0; 20 }
/// 輸出結果 10.000000 0.000000 1.000000 2.000000 3.000000 4.000000 5.000000 6.000000 7.000000 8.000000 9.000000 10.000000 隊內的元素的個數為:0