Почему этот код С# имеет две угловые скобки '>>' после IHeapifyable в этой строке

Метод находится в классе Heap, который создает структуру данных Heap в C#. Этот метод находит минимальное значение K за время O (K log n). Что именно делает эта строка

List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();

Может кто-нибудь объяснить эту конкретную строку в коде С# Весь код здесь

public IHeapifyable<K, D> KthMinElement(int k)
    {
        if (Count is 0) throw new InvalidOperationException();
        if (k <= 0 || k > Count) throw new ArgumentOutOfRangeException();

        IHeapifyable<K, D> kthMin = null;
        List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();
        for (int i = 1; i <= k; i++)
        {
            if (i == k) kthMin = data[1];
            temp.Add(this.Delete());
        }
        foreach (var node in temp) this.Insert(node.Key, node.Data);

        return kthMin;
    }
Формы c голосовым вводом в React с помощью Speechly
Формы c голосовым вводом в React с помощью Speechly
Пытались ли вы когда-нибудь заполнить веб-форму в области электронной коммерции, которая требует много кликов и выбора? Вас попросят заполнить дату,...
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Стилизация и валидация html-формы без использования JavaScript (только HTML/CSS)
Будучи разработчиком веб-приложений, легко впасть в заблуждение, считая, что приложение без JavaScript не имеет права на жизнь. Нам становится удобно...
Flatpickr: простой модуль календаря для вашего приложения на React
Flatpickr: простой модуль календаря для вашего приложения на React
Если вы ищете пакет для быстрой интеграции календаря с выбором даты в ваше приложения, то библиотека Flatpickr отлично справится с этой задачей....
В чем разница между Promise и Observable?
В чем разница между Promise и Observable?
Разберитесь в этом вопросе, и вы значительно повысите уровень своей компетенции.
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Что такое cURL в PHP? Встроенные функции и пример GET запроса
Клиент для URL-адресов, cURL, позволяет взаимодействовать с множеством различных серверов по множеству различных протоколов с синтаксисом URL.
Четыре эффективных способа центрирования блочных элементов в CSS
Четыре эффективных способа центрирования блочных элементов в CSS
У каждого из нас бывали случаи, когда нам нужно отцентрировать блочный элемент, но мы не знаем, как это сделать. Даже если мы реализуем какой-то...
0
0
48
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Угловые скобки заключают параметры универсального типа. Здесь используется List<T>, где T — это IHeapifyable<K, D>, так что это List<IHeapifyable<K, D>>. Это похоже на то, как если бы вы вкладывали вызовы методов следующим образом:

Method1(Method2(arg));

так что вы получите две закрывающие круглые скобки в конце.

Ответ принят как подходящий

Угловые скобки — это открытие и закрытие того, что содержится в типе данных, который они описывают.

List<IHeapifyable<K, D>> temp = new List<IHeapifyable<K, D>>();

Вот что говорит эта строка: создайте List тип данных, содержащий один или несколько IHeapifyable<K,D> типов данных, и назначьте его переменной temp.

Список целых чисел инициализируется этим

List<int>

Ваш пример такой же, за исключением того, что вместо int это

IHeaplifyable<K,D>

поэтому, если вы замените int на IHeaplifyable, вы получите.

List<IHeaplifyable<K,D>>

Но почему у него есть >> в конце, <K, D>> Обычно у нас есть только <K, D>

Somil 17.05.2022 09:38

@somil второй > закрывает List<

alexpdev 17.05.2022 09:51

@Somil Я отредактировал свой ответ, чтобы разбить его дальше.

alexpdev 17.05.2022 09:58

Другие вопросы по теме