怎么去除網址(怎樣去除圖片上的網址)
875
2022-05-29
什么是棧?
在我們的日常生活中,我們可能會看到一堆物品。例如:一疊盤子、疊在盤子上的煎餅、河內塔問題的棍子上的石頭、一疊椅子、一疊書等。
在編程語言中,堆棧是一種沒有什么有趣屬性的數據結構。它的元素在您獲得它們時添加,并且您從添加到其中的最后一個元素清空堆棧。
Stack 也稱為 LIFO,代表“后進先出”。
所以,第一個添加的元素最后出來,最后一個添加的成員先出來。該結構在軟件開發或軟件相關主題以及硬件實現中可能經常出現的一些典型編程情況下是良好的。
堆棧實現策略
對于堆棧,有幾種可能的實現方式,最常用的分類是基于堆棧的預測大小,我們正在使用。以下是堆棧的三種最常見的實現策略:
* 第一個,稱為有限大小的堆棧,通常使用數組和計數器來實現,該計數器知道您添加了多少元素,您還需要知道容量。
* 第二個更有趣,它是通過結構體和指針實現的。它有時被稱為“未知大小”的堆棧。第一個和第二個選項都可以在 C 和 C++ 編程語言中使用。
* 第三種可能的解決方案是創建自己的類或模板類,使用很少的方法和重載運算符、友元方法等……
也可以有對象堆棧和指向對象的指針。但是,我們文章的重點將放在 STL 堆棧上。
如何使用 STL 堆棧?
為了使用 STL 堆棧,首先您需要在代碼的開頭添加“#include stack”。
這將使您能夠在程序中使用堆棧。更準確地說,它是STL容器,它是用其他一些STL數據結構實現的,這使它成為一個適配器。
在此之后,您需要聲明某種類型的堆棧,可以這樣完成:
堆棧名稱OfOurStack;
聲明堆棧后,您可以應用幾個成員函數。
如果您需要檢查堆棧是否為空,您可以使用空成員函數,根據堆棧的狀態返回 true 或 false。要使用它,你可以這樣寫:
nameOfOurStack.empty();
當您需要確定堆棧的大小時,您可以創建計數器,如果您添加元素,您會增加計數器,或者如果您從堆棧中刪除元素,您會減少您的計數器。這應該通過大小來完成,即公共成員函數就在那里。這如下所示:
nameOfOurStack.size();
現在獲得的元素已經添加到堆棧中,可以根據您的需要在您的程序中使用。
要訪問我們的堆棧頂部,您將使用 top,它將從我們的堆棧頂部復制元素,但是它不會像您在開始時期望的那樣從容器中刪除它們。
nameOfOurStack.top();
如果您想從堆棧頂部刪除元素,您可以使用 pop.
nameOfOurStack.pop();
為創建堆棧而煩惱:從用戶那里獲取元素,從文件中讀取它們或者計算它們。要在堆棧頂部再添加一個元素,您可以像這樣編碼:
nameOfOurStack.push(someElement);
在 C++ 11 中,你也應該有 emplace。它將構造元素并將其添加到堆棧中。例如,您可以執行以下操作:
nameOfOurStack.emplace("Some string that will be added to stack of strings");
如果您想交換兩個堆棧,從 C++ 11 開始,您也應該交換。
如果您嘗試比較兩個堆棧,您可能還需要一些非常有用的關系運算符。
STL 堆棧示例程序 #1
我們的第一個示例將說明如何創建少量整數的堆棧以及如何對其執行一些基本操作。
#include STL 堆棧示例程序 #2 我們的第二個例子將解釋如何創建字符串堆棧。 #include STL 堆棧示例程序 #3 第三個也是最后一個示例將向您展示如何將十進制數轉換為其等效的二進制數。 #include C 語言 C++ 數據結構 匯編語言
版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。