Метод EnqueueRange
Метод EnqueueRange класса
PriorityQueue<TElement, TPriority>
имеет перегрузки: можно передать коллекцию
пар (элемент, приоритет) или список
элементов с одним общим приоритетом.
Метод возвращает void.
Синтаксис
pq.EnqueueRange(items);
pq.EnqueueRange(elements, priority);
Пример
Давайте поставить пачку пар элемент–приоритет:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<string, int> pq =
new PriorityQueue<string, int>();
pq.EnqueueRange(new (string, int)[]
{
("c", 3),
("a", 1),
("b", 2)
});
Console.WriteLine(pq.Dequeue());
}
}
Результат выполнения кода:
"a"
Пример
Давайте поставить несколько чисел с одним приоритетом:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<int, int> pq = new PriorityQueue<int, int>();
pq.EnqueueRange(new int[] {1, 2, 3}, 5);
Console.WriteLine(pq.Count);
}
}
Результат выполнения кода:
3
Пример
Давайте снимем элементы после EnqueueRange:
using System;
using System.Collections.Generic;
class Program
{
static void Main()
{
PriorityQueue<int, int> pq = new PriorityQueue<int, int>();
pq.EnqueueRange(new (int, int)[]
{
(10, 3),
(20, 1),
(30, 2)
});
Console.WriteLine(pq.Dequeue());
Console.WriteLine(pq.Dequeue());
}
}
Результат выполнения кода:
20
30