C++stack(スタック)の使い方について
9435 ワード
まず、ヘッダーファイルを書かなければなりません.
では、スタックをどのように定義しますか?
次はスタックに関する基本的な操作です~
1.要素aをスタックに入れる:s.push(a);2.スタックトップの要素を削除する:s.pop();3.スタックトップを返す要素:s.top()4.スタックが空かどうかを判断する:s.empty();(空のTRUEに戻る).スタック内の要素の数を返します:s.size();6.スタックを空にします:(この関数がなくて申し訳ありませんが、これらを書かなければなりません:)
(そう、一つ一つ削除しなければなりませんQUQ)
テンプレートの問題を試してみたいのではないでしょうか.
TJUOJ 1196 Web Navigation(htmlに関する英語の問題です)
【これは1つの問題解です】テーマによると、前方スタックと後方スタックの内容として2つのスタックを開く必要があります
BACK:現在のページを順方向スタックの上部に押します.ページをバックスタックの上部からポップアップし、新しい現在のページにします.後方スタックが空の場合、コマンドは無視されます.
FORWARD:現在のページをバックスタックの上部にプッシュします.スタックの上部からページをポップアップし、新しい現在のページにします.順方向スタックが空の場合、コマンドは無視されます.
VISIT:現在のページをバックスタックの上部にプッシュし、URLを新しい現在のページに指定します.前方スタックを空にします.
QUIT:この無意味なテンプレート問題を終わらせる
コードを貼り付けます.
よしよし、飢え死にしそうだ、まだご飯食べてない...行くぞ~
#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;
}
よしよし、飢え死にしそうだ、まだご飯食べてない...行くぞ~