C 清空stl的stack容器

2021-08-19 02:28:07 字數 618 閱讀 1222

很遺憾,沒有現成函式,可以採用

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的...