很遺憾,沒有現成函式,可以採用
stacks;
while(!s.empty()) s.pop();
// stack操作的是堆記憶體,所以要乙個乙個彈出。
//stacks;
stack().swap(s);
// swap相當於交換了s和乙個空臨時stack的內容,然後臨時stack再結束生命週期,但由於操作的是堆空間,其實還是乙個乙個釋放空間。
但是swap比pop要快,耗時差不多是1/3
測試**:
int n = 10000000;
stacks2;
for(int i=0;i().swap(s2);
double s2b = (double)clock();
printf("\e[01;34m program use time: \e[01;31m%.4f ms\e[0m\n",s2b - s2a);
stacks1;
for(int i=0;i輸出:
program use time: 168283.0000 ms
program use time: 510330.0000 ms
C 中STL容器之棧 stack
1.棧 stack 基本介紹 棧是限定在僅在表尾進行插入或刪除操作的線性表,表尾端稱為棧頂 top 表頭端稱為 棧底 bottom 一般的棧如下圖所示,它的特點可用圖3.1 b 所示的鐵路排程站形象地表示 2.棧的基本用法 2.1 棧的定義方式 stacks 引數也是資料型別,這是棧的定義方式 st...
STL容器之stack棧
棧 statck 這種資料結構在計算機中是相當出名的。棧中的資料是先進後出的 first in last out,filo 棧只有乙個出口,允許新增元素 只能在棧頂上增加 移出元素 只能移出棧頂元素 取得棧頂元素等操作。在stl中,棧是以別的容器作為底部結構,再將介面改變,使之符合棧的特性就可以了。...
STL特殊容器之stack
stack是一種先進後出 filo 的資料結構,它只有乙個出口。stack允許新增元素 移除元素 取得棧頂元素,除了棧頂元素,取不到其他元素,即棧不允許遍歷,也不提供迭代器。deque作為stack的底層容器,可以輕易的形成乙個stack。因此,sgi stl以deque作為預設情況下的stack的...