# stack
# 標頭檔
#include<stack> |
# 初始化
默認構造器:empty container constructor
stack<type> sk; // 默認構造器 |
# push
&& pop
stack
最常用的成員函數,push 在最尾處插入值,及最尾部刪除值
--> FILO (First In Last Out),先入後出的概念
#include<stack> | |
using namespace std; | |
int main(){ | |
stack<int>sk; | |
sk.push(10); //{10} | |
sk.push(20); //{10,20} | |
sk.push(30); //{10,20,30} | |
sk.pop(); //{10,20} | |
sk.pop(); //{10} | |
} |
# top
stack
取出最前面值的方法,記得 top 只能知道最前面的值,不包括刪除工作。
#include<stack> | |
using namespace std; | |
int main(){ | |
stack<int>sk; | |
sk.push(10); | |
sk.push(20); | |
sk.top()-=5; | |
cout<<"sk.top() is now "<<sk.top()<<'\n'; | |
} |
輸出
sk.top() is now 15
# empty
如果 queue
為空, empty
返回 true
;
# size
返回 queue
容器元素個數
# emplace
C++11 的新特性,在幾乎所有的容器中都插入了這一函數,這一函數功能類似於 push
, 但是開銷遠小於 push
, 它不產生臨時變數
#include <iostream> | |
#include <stack> | |
#include <string> | |
using namespace std; | |
int main () { | |
stack<string> sk; | |
sk.emplace ("First sentence"); | |
sk.emplace ("Second sentence"); | |
cout << "mystack contains:\n"; | |
while (!sk.empty()) { | |
cout << sk.top() << '\n'; | |
sk.pop(); | |
} | |
} |
輸出
mystack contains:
Second sentence
First sentence