RAD Studio VCL Reference
|
Get top item on queue.
function Peek: T;
__fastcall T Peek();
Peek returns the top item of the queue without removing it. Count is unchanged. No event is generated. If Count is 0, an error is raised.
Peek functions similarly to Dequeue except that Dequeue removes the top item.
This is a O(1) operation.
Delphi Examples:
{ This example demonstrates the usage of the generic TQueue class. } procedure TForm3.Button1Click(Sender: TObject); var Queue: TQueue<String>; begin { Create a new Queue } Queue := TQueue<String>.Create(); { Register a notification call-back } Queue.OnNotify := QueueChanged; { Enqueue some items up the Queue } Queue.Enqueue('John'); Queue.Enqueue('Mary'); Queue.Enqueue('Bob'); Queue.Enqueue('Anna'); Queue.Enqueue('Erica'); { Show the last enqueued element without modifying the Queue } MessageDlg('First enqueued element is: "' + Queue.Peek() + '".', mtInformation, [mbOK], 0); { Extract the top element: "Erica" } Queue.Extract(); { Reduce the capacity } Queue.TrimExcess(); { The remaining count of elements } MessageDlg('The queue contains ' + IntToStr(Queue.Count) + ' elements.', mtInformation, [mbOK], 0); { Show the last enqueued element by modifying the Queue } MessageDlg('First enqueued element is: "' + Queue.Dequeue() + '".', mtInformation, [mbOK], 0); { Clear the Queue } Queue.Clear(); { Destroy the Queue completely } Queue.Free; end; procedure TForm3.QueueChanged(Sender: TObject; const Item: String; Action: TCollectionNotification); begin { This method is called by the List everytime a change occurs } if Action = cnAdded then MessageDlg('Element added: ' + Item, mtInformation, [mbOK], 0) else if Action = cnRemoved then MessageDlg('Element removed: ' + Item, mtInformation, [mbOK], 0) else if Action = cnExtracted then MessageDlg('Element extracted: ' + Item, mtInformation, [mbOK], 0) end;
Copyright(C) 2009 Embarcadero Technologies, Inc. All Rights Reserved.
|
What do you think about this topic? Send feedback!
|