2010-10-08 80 views
2

我正在使用C++,我想推堆棧中的字符串,例如推送int在堆棧中按下字符串?

對於實施例

3."stackoverflow" 
2."is" 
1."Best" 
0."site" 

堆的每一個索引,在欲推的字符串。我怎樣才能做到這一點?

+10

您是否嘗試過某些東西?如果是這樣,你可以發佈嗎? – 2010-10-08 10:13:14

+1

「堆棧的每個索引」都沒有意義。堆棧沒有索引;您只能訪問最上面的元素。但是,像'vector'這樣的索引容器具有堆棧式的推/彈語義。 – meagar 2010-10-08 13:56:35

+0

這裏有一些誤解。 我想推棧中的字符串。 就像推整數一樣。 push(「Hello」); 推(「世界」); – 2010-10-10 15:34:17

回答

12

使用STL,例如:

#include <stack> 

std::stack<std::string> s; 
s.push("A"); 
s.push("B"); 
s.push("C"); 
s.push("D"); 

檢查STL reference以獲取更多信息。

7

完全符合噸範登休維爾同意,但是你說

「堆棧的各項指標,在我想 推一根繩子」

你是什麼意思「每一個索引」 ?您應該知道,一旦字符串在堆棧中,您只能訪問頂部的字符串,並且不會通過堆棧中的索引進行訪問。如果這就是你需要的,那就用std :: vector來代替。

+0

如果cplusplus.com是正確的(http://www.cplusplus.com/reference/stl/stack/),'std :: stack'的默認基礎類型是'std :: deque',而不是'std :: VECTOR'。無論如何+1,但你應該改正這一點。 – 2010-10-08 10:49:03

+0

@Matteo:對不起,混淆了,vector是priority_queue的默認值...編輯 – 2010-10-08 10:52:53

1

我做到了。我之前看到如何將字符串轉換爲字符數組,並將其混合到我現在正在研究的內容即。棧。

stack <int> Name; 
name="mohit"; 
for(char c:name) 
Name.push(c); 
for(char c:name){ 
cout<<Name.top(); 
Name.pop();} 

和輸出是tihom 它的功能很簡單。它將字符串轉換爲字符數組,然後逐個字符地推送字符串。爲了彈出我們使用相同的循環,它使用LIFO原理彈出。

相關問題