2017-05-22 7 views
-4

私はC#で書かれた簡単なコンソールアプリケーションを持っています。 PopとPeekの方法と利点を見ています。スタック内のポップアップアイテムとポップアップアイテムの主な相違点<T> C#Consoleアプリケーションを使用していますか?

Stack<string> movies = new Stack<string>(); 
     movies.Push("Fire & Dew"); 
     movies.Push("Hang Break"); 
     movies.Push("Naughty Monkey"); 
     movies.Push("Sabotage"); 


     Console.WriteLine("All Movies\n"); 
     foreach (string movie in movies) 
     { 
      Console.WriteLine(movie); 
     } 
+1

PopとPeekの違いを知りたいだけですか? Peekはスタックから削除せずに読み込みますが、スタックから読み込んで削除する必要がある場合はPopが有効です。 – Sam07

答えて

0

stack.Pop() - 削除し、スタックの一番上にオブジェクトを返します。 MSDN

stack.Peek() - オブジェクトを削除せずにスタックの先頭に戻します。 MSDN

トップオブザスタックを読む必要がある場合は、Peekを使用してください。
スタック全体を処理する必要がある場合は、Popを使用してください。

0

スタックはラスタ・イン・ファーストアウトコレクションと呼ばれ、スタックの先頭から要素を追加または削除できます。アイテムをプッシュする要素を追加する。 通常、アイテムをポップすると呼ばれるスタックから要素を削除します。 Stackクラスの使い方は、コードを参照してください。

次のコードではStackを宣言しました。簡単にするために、私は各映画をタイトルを含む文字列で表しました。 アイテムをスタックに個別にプッシュして、さらにデータを追加しました。 いくつかの奇妙な理由は、これを行う方法はプッシュと呼ばれ、そのコード行を実行した後、それには4つのムービー があります。

//Sabotage 
//Naughty Monkey 
//Hang Break 
//Fire & Dew 

Stack<string> movies = new Stack<string>(); 
     movies.Push("Fire & Dew"); 
     movies.Push("Hang Break"); 
     movies.Push("Naughty Monkey"); 
     movies.Push("Sabotage"); 

     //To display the data use foreach loop 
     //You will notice that the foreach loop has displayed 
     //the movies in the reverse order to the order I put them on. 
     Console.WriteLine("All Movies\n"); 
     foreach (string movie in movies) 
     { 
      Console.WriteLine(movie); 
     } 

     // To access the top most string which is "Fire & Dew title" 
     //I can get it by Pop() 

     //Data will be lost using Pop() but if you do not want to 
     //lose data use Peek() instead 

     //try first 
     string topMovie = movies.Pop(); 

     //try later 
     //string topMovie = movies.Peek(); 

     Console.WriteLine($"\nTop Movie is:{topMovie}"); 


     Console.WriteLine("\nAll Movies: After popping\n"); 

     foreach (string movie in movies) 
     { 
      Console.WriteLine(movie); 
     } 
+0

これはどのようにして質問に答えますか?あなたは「ピーク」に対処していませんでした。 –

+0

@JimMischel質問のポスターは、このユーザーの靴下の人形でした。この答えの目的は、決して正確で有益ではありませんでした。 – xxbbcc

関連する問題