‫このビデオでは､ C-sharpでのタンクの使い方について､ スタックにデータを追加する方法､
‫スタック内のデータを編集する方法などを学びます｡
‫まず最初に､ スタックを定義する方法を見てみましょう｡ スタックは､ コレクションを定義するのと同じように定義することができます｡
‫そこで､ ここではstackキーワードを使用し､ textを使用するために､ 以下の名前空間を追加する必要があります｡
‫コレクションはジェネリックなので､ スタックはジェネリックコレクションの長所と短所を併せ持っていることになります｡
‫そこで､ スタックする型を定義する必要があります｡
‫そしてこの例では､ Stackと名付けたこのスタックにintの束を積み重ねます｡
‫このスタックをマイスタックと呼ぶこともできますし､ どのように呼んでもかまいません｡
‫スタックに値を追加するには､ このpushメソッドを使用する必要があり､ スタックの一番上にオブジェクトを挿入することができます｡
‫つまり､ この場合､ オブジェクトはinteger型になります｡
‫だから､ push と言って､ それに追加したい into item を入力すればいいし､ one to it として I と言えばいいのです｡
‫つまり､ これでスタックに1つプッシュされます｡
‫さて､ スタックの最上位にあるものを見たい場合は､ それを覗き見ることができます｡
‫つまり､ これはスタックの一番上にある要素を削除せずに返すことになります｡
‫これがスタックピークなんですね｡
‫このスタックには他に何もないので､ このメソッドでこの1つを得ることができます｡
‫そして､ 基本的にはこれがスタックの一番上にあるアイテムです｡
‫ですから､ もしここにさらに項目を追加するとしたら､ もちろん､ スタックに追加された最後の項目が､
‫この右のラインステートメントを使って表示されることになります｡
‫では､ そこで何が得られるのか､ 実際にざっと見てみましょう｡
‫そして､ スタックの一番上の値が1であることがわかります｡
‫ここで､ 例えば1, 3, 3, 7のように別の値を追加して､ もう一度実行すると､
‫スタックの一番上の項目は1, 3, 3, 7になります｡
‫それでは､ push を使ってスタックにたくさんのアイテムを追加し､ さらにそれらを peek してみましょう｡ peek
‫するたびに､ スタックに追加された最新のアイテムだけを見ることになります｡
‫つまり､ スタックの一番上の値は1であり､ そこに2をプッシュするのです｡
‫スタックでのトップバリューは2､ といった具合です｡
‫さて､ スタックから項目を削除したい場合は､ スタックドットポップを使用することができます｡
‫これにより､ アイテムが削除され､ popによりアイテムが返却されます｡
‫この場合､ 整数を返すので､ 例えばこの整数をスタックの項目に格納することができます｡
‫そして､ 例えばこんなことができます｡
‫これがここで再生されました｡
‫そして､ この1つをホップアイテムと呼ぶことにしましょう｡
‫では､ もう一度実行してみましょう｡
‫そして､ 3がポンと出てくるのがわかると思います｡
‫今､ もう一度ピークを迎えるとしたら｡
‫ではここで､ もう一度ピックしてみましょう｡
‫私たちがアイテムを弾き出した後､ あなたはそれがもう3つではなく､ 実際には2つであることがわかります｡
‫つまり､ アイテムは3で､ スタックの一番上の値は2になります｡
‫つまり､ popを使ってアイテムを保存し､ その後使用することができますが､ スタックにはもう入らないということです｡
‫つまり､ これがスタックから項目を削除する方法です｡
‫しかし､ スタックに何もない状態でこの操作を行うと､
‫エラーが発生します｡
‫では､ 早速実行してみましょう｡
‫そして､ ここでは何も起こらず､ 実際にアプリケーションがクラッシュしていることがお分かりいただけると思います｡
‫つまり､ 空のスタックからポップできないので､ ここで無効な操作の例外が発生します｡
‫飛び出すものがないんです｡
‫だから､ 最初に確認することは常に有効です｡
‫だから､ スタック数の場合のみ｡
‫つまり､ アイテムの量が0より大きいときに実行したいのです｡
‫ですから､ スタックを使うときには､ ポップするものがあるかどうか､ アイテムをポップしたりスタックからアイテムを削除したりする場合は､
‫常に最初にチェックするということを考慮したほうがいいかもしれませんね｡
‫そこで､ 例えば､ スタックからアイテムがなくなるまで削除するワイドループを作成することができます｡
‫ですから､ ぜひ一度､ 試してみてください｡
‫小さなwhileループを作成します｡
‫これなら､ 私が言ったとおりのことができます｡
‫ですから､ 基本的にはすべてのアイテムを取り除き､ スタックからすべてのアイテムをホップした時点で実行を停止します｡
‫なるほど｡
‫ぜひ試してみてください｡
‫基本的には確認します｡
‫ステップ数が0より大きいか？
‫その場合は､ スタックから項目をポップします｡
‫また､ コンソールに直接表示することもできますし､ アイテムの残量も同時に表示させるつもりです｡
‫では､ 実際にこれを実行して､ 3つをどのように削除するのか見てみましょう｡
‫そして､ 2つのアイテムだけが残り､ 次に2つの1つのアイテムを削除し､ 1つのアイテムを削除して､
‫アイテムが残らないようにするのです｡
‫つまり､ 見ての通り､ スタックからポップアウトする要素は逆方向なのです｡
‫押し込むので､ 逆になってしまうんです｡
‫つまり､ スタックに入った最後の要素が､ スタックから出る最初の要素になるという､
‫葉っぱの概念をここで使っていることになりますね｡
‫では､ 配列の反転を見てみましょう｡
‫これで､ スタックの仕組み､ アイテムを削除したり追加したりする方法などがお分かりいただけたと思います｡
‫では､ ここにある配列を考えてみましょう｡
‫つまり､ 整数を並べた数値配列ですね｡
‫だから､ 今度はそれを逆手に取りたい｡
‫そこで､ この処理を行うスタックを定義してみましょう｡
‫そこでまず､ 新しいスタックを定義する必要があります｡
‫そして､ 実はこれを自分でも試してみることができるのです｡
‫だから､ この小さなアプリケーションを自分で作ってみて､ そこで数字が逆転するようにするのです｡
‫ですから､ この数値配列の中の数値は反転して､ ちょうど逆順に表示されるはずです｡
‫だから､ 別の配列に格納する必要はない｡
‫コンソールに逆順に表示させるだけとする｡
‫なるほど｡
‫ということで､ まずは数字配列にある項目を表示させてみます｡
‫ここでは､ レイの中の数字を表示するためにfor eachループを使い､ さらにこの方法でスタックに追加しています｡
‫だから､ スタックに押し込んでいるのです｡
‫これもひとつの方法です｡
‫もちろん､ 他にも方法はあるでしょうが､ これが私たちのやり方なのです｡
‫数字を表示し､ 次に空白を表示し､ その項目をスタックに追加するのです｡
‫このように､ 作成した私のスタックですが､ あとは数字を逆向きに表示することを確認するだけです｡
‫そこで､ ここではコンソールの右側ラインを使って改行をしています｡
‫そして､ 逆の数字があると言って､ その数字を表示させています｡
‫そこで､ スタックにまだアイテムがあるかどうかをチェックし､ カウントが大きければ0にします｡
‫スタックにまだアイテムがあることが分かっているので､ 最後のアイテムをポップします｡
‫それを整数として保存し､ 表示するのです｡
‫もちろん､ このステップを飛ばして､ このように直接､ 商品をポンと置くことも可能です｡
‫この場合､ もちろん番号はどこにも使いませんが､
‫万が一使いたい場合には､ どこかに保存する方法がわかっているわけです｡
‫わかりました｡
‫では､ 実際にアプリケーションを動かして､ うまくいったかどうか見てみましょう｡
‫これが配列で､ これがその逆バージョンです｡
‫だから､ 2 6､ 743､ 2､ 8｡
‫わかりました｡
‫そして､ 基本的にはそれでリバースとレースを行うことができます｡
‫配列の逆変換を求められたら､ どうすればいいかわかりますね｡
‫だから､ テキストはそのための素晴らしいツールなのです｡
‫しかし､ もちろん､ テキストは他の多くの場面でも､ リーフやシステムを使いたいと思ったときにとても役に立ちます｡
‫ラスト・イン・ファースト・アウトのシステムは､ 実際に必要なアプリケーションがたくさんあります｡
‫わかりました｡
‫というわけで､ 今回の動画はここまでです｡
‫次回は､ Qについてご紹介します｡