Queue.Enqueue(Object) Метод

Определение

Добавляет объект в конец коллекции Queue.

public:
 virtual void Enqueue(System::Object ^ obj);
public virtual void Enqueue (object obj);
public virtual void Enqueue (object? obj);
abstract member Enqueue : obj -> unit
override this.Enqueue : obj -> unit
Public Overridable Sub Enqueue (obj As Object)

Параметры

obj
Object

Объект, добавляемый в коллекцию Queue. Допускается значение null.

Примеры

В следующем примере показано, как добавить элементы в Queue, удалить элементы из Queueили просмотреть элемент в начале Queue.

using namespace System;
using namespace System::Collections;
void PrintValues( IEnumerable^ myCollection );
int main()
{
   
   // Creates and initializes a new Queue.
   Queue^ myQ = gcnew Queue;
   myQ->Enqueue( "The" );
   myQ->Enqueue( "quick" );
   myQ->Enqueue( "brown" );
   myQ->Enqueue( "fox" );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Removes an element from the Queue.
   Console::WriteLine( "(Dequeue)\t{0}", myQ->Dequeue() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Removes another element from the Queue.
   Console::WriteLine( "(Dequeue)\t{0}", myQ->Dequeue() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
   
   // Views the first element in the Queue but does not remove it.
   Console::WriteLine( "(Peek)   \t{0}", myQ->Peek() );
   
   // Displays the Queue.
   Console::Write( "Queue values:" );
   PrintValues( myQ );
}

void PrintValues( IEnumerable^ myCollection )
{
   IEnumerator^ myEnum = myCollection->GetEnumerator();
   while ( myEnum->MoveNext() )
   {
      Object^ obj = safe_cast<Object^>(myEnum->Current);
      Console::Write( "    {0}", obj );
   }

   Console::WriteLine();
}

/* 
 This code produces the following output.
 
 Queue values:    The    quick    brown    fox
 (Dequeue)       The
 Queue values:    quick    brown    fox
 (Dequeue)       quick
 Queue values:    brown    fox
 (Peek)          brown
 Queue values:    brown    fox

 */
using System;
using System.Collections;
public class SamplesQueue  {

   public static void Main()  {

      // Creates and initializes a new Queue.
      Queue myQ = new Queue();
      myQ.Enqueue( "The" );
      myQ.Enqueue( "quick" );
      myQ.Enqueue( "brown" );
      myQ.Enqueue( "fox" );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes an element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Removes another element from the Queue.
      Console.WriteLine( "(Dequeue)\t{0}", myQ.Dequeue() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );

      // Views the first element in the Queue but does not remove it.
      Console.WriteLine( "(Peek)   \t{0}", myQ.Peek() );

      // Displays the Queue.
      Console.Write( "Queue values:" );
      PrintValues( myQ );
   }

   public static void PrintValues( IEnumerable myCollection )  {
      foreach ( Object obj in myCollection )
         Console.Write( "    {0}", obj );
      Console.WriteLine();
   }
}
/*
This code produces the following output.

Queue values:    The    quick    brown    fox
(Dequeue)       The
Queue values:    quick    brown    fox
(Dequeue)       quick
Queue values:    brown    fox
(Peek)          brown
Queue values:    brown    fox

*/
Imports System.Collections

Public Class SamplesQueue
    
    
    Public Shared Sub Main()
        
        ' Creates and initializes a new Queue.
        Dim myQ As New Queue()
        myQ.Enqueue("The")
        myQ.Enqueue("quick")
        myQ.Enqueue("brown")
        myQ.Enqueue("fox")
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes an element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Removes another element from the Queue.
        Console.WriteLine("(Dequeue)    {0}", myQ.Dequeue())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
        
        ' Views the first element in the Queue but does not remove it.
        Console.WriteLine("(Peek)       {0}", myQ.Peek())
        
        ' Displays the Queue.
        Console.Write("Queue values:")
        PrintValues(myQ)
    End Sub

    Public Shared Sub PrintValues(myCollection As IEnumerable)
        Dim obj As [Object]
        For Each obj In  myCollection
            Console.Write("    {0}", obj)
        Next obj
        Console.WriteLine()
    End Sub

End Class


' This code produces the following output.
' 
' Queue values:    The    quick    brown    fox
' (Dequeue)    The
' Queue values:    quick    brown    fox
' (Dequeue)    quick
' Queue values:    brown    fox
' (Peek)       brown
' Queue values:    brown    fox

Комментарии

Емкость Queue — это количество элементов, которые могут храниться в объекте Queue . При добавлении элементов в Queueемкость автоматически увеличивается по мере необходимости путем перераспределения. Емкость можно уменьшить, вызвав .TrimToSize

Коэффициент роста — это число, на которое умножается текущая емкость, когда требуется большая емкость. Коэффициент роста определяется при построении Queue . Емкость Queue всегда будет увеличиваться на минимальное значение, независимо от коэффициента роста; коэффициент роста 1,0 не будет препятствовать увеличению Queue размера .

Если Count значение меньше емкости внутреннего массива, этот метод является операцией O(1) . Если внутренний массив необходимо перераспределить для размещения нового элемента, этот метод становится операцией O(n) , где n имеет значение Count.

Применяется к

См. также раздел