C++stack(スタック)の使い方について


まず、ヘッダーファイルを書かなければなりません.
#include 

では、スタックをどのように定義しますか?
stack <  >    

次はスタックに関する基本的な操作です~
stack <int> s;(      )

1.要素aをスタックに入れる:s.push(a);2.スタックトップの要素を削除する:s.pop();3.スタックトップを返す要素:s.top()4.スタックが空かどうかを判断する:s.empty();(空のTRUEに戻る).スタック内の要素の数を返します:s.size();6.スタックを空にします:(この関数がなくて申し訳ありませんが、これらを書かなければなりません:)
while (!s.empty())
	s.pop();

(そう、一つ一つ削除しなければなりませんQUQ)
テンプレートの問題を試してみたいのではないでしょうか.
TJUOJ 1196 Web Navigation(htmlに関する英語の問題です)
【これは1つの問題解です】テーマによると、前方スタックと後方スタックの内容として2つのスタックを開く必要があります
BACK:現在のページを順方向スタックの上部に押します.ページをバックスタックの上部からポップアップし、新しい現在のページにします.後方スタックが空の場合、コマンドは無視されます.
FORWARD:現在のページをバックスタックの上部にプッシュします.スタックの上部からページをポップアップし、新しい現在のページにします.順方向スタックが空の場合、コマンドは無視されます.
VISIT:現在のページをバックスタックの上部にプッシュし、URLを新しい現在のページに指定します.前方スタックを空にします.
QUIT:この無意味なテンプレート問題を終わらせる
コードを貼り付けます.
#include //       !
using namespace std;
stack<string> fo,ba;//     
string now;
//VISIT  
void add(){
	string s;
	cin >> s;
	ba.push(now);
	now = s;
	while(!fo.empty()) fo.pop();
	cout << now << endl;
}
//BACK  
void back(){
	string s;
	if (!ba.empty()){
		fo.push(now);
		now = ba.top();
		ba.pop();
		cout << now << endl;
	}else cout << "Ignored
"
; } //FORWARD void forw(){ string s; if (!fo.empty()){ ba.push(now); now = fo.top(); fo.pop(); cout << now << endl; }else cout << "Ignored
"
; } int main(){ now = "http://www.acm.org/"; string s; cin >> s; while (s != "QUIT"){ if (s == "VISIT") add(); if (s == "BACK") back(); if (s == "FORWARD") forw(); cin>>s; } return 0; }

よしよし、飢え死にしそうだ、まだご飯食べてない...行くぞ~