簡體   English   中英

關於 C++ 中堆棧 STL 的問題

[英]Questions about stack STL in C++

所以我試圖了解堆棧 STL 允許您做什么。 我知道您首先包含堆棧,然后創建一個這樣的對象:

#include<stack>
stack<int> calcStack;

但我想了解的是,既然我已經創建了一個堆棧,我如何向它添加數字然后將它們讀出。 從視頻中我看到有人只是這樣做:

calcStack.push(1); //Adding the number one to the top of the stack
calcStack.top();   //Reading the number at the top of the stack
calcStack.pop();   //Removing the number at the top of the stack

cout << calcstack.top << endl; //This should print out one

這是否意味着我可以只使用函數.push() .top() .pop()而不必在 .cpp 文件中定義它們? 我還應該在頭文件、實現文件還是帶有主類的文件中創建我的堆棧?

這是我第一次使用堆棧,我剛剛開始使用 C++,所以任何指導都將不勝感激!!!

您不必為堆棧定義任何函數。 它是標准庫的一部分。 這意味着庫本身已經為您定義了它們。

您只需要擔心:

  1. 包括正確的標題
  2. 鏈接到正確的庫(使用 g++(而不是 gcc)編譯時會自動鏈接標准庫)。如果您使用的是 MSVC,那么它也會自動鏈接到標准庫中。

坦率地說,我在這里提到第 2 點的唯一原因是因為對於其他庫,您需要這樣做。 並且是“鏈接器錯誤”的常見來源。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM