квантиль — Объясните фрагмент кода C ++

Я только начал изучать «класс» и другие продвинутые методы в C ++, чтобы понять следующий фрагмент C ++. Пожалуйста, не уменьшайте вопрос, если вы думаете, что это глупо, потому что я искал в Интернете, прежде чем спрашивать!

Код реализует алгоритм квантиля онлайн, называемый «метод GK». Я пытаюсь понять практическую работу алгоритма, изучая код. Полный код состоит из 191 строки, поэтому я не скопировал его здесь, он находится по адресу:
https://github.com/coolwanglu/quantile-alg/blob/master/gk.h

Часть кода, которую я не понимаю, приведена ниже.

46     class entry{
47     public:
48         entry () { }
49         entry (unsigned int _g, unsigned int _d) : g(_g), delta(_d) { }
50         unsigned int g,delta;
51     };

Я не понимаю, что значит # 48,49.

134         entry & ecur = iter->second;

Вот что значит «Тип & Имя значит?

Наконец, если кто-то, кто знаком с методом GK, увидит это: не могли бы вы объяснить мне или предложить какие-либо ссылки, которые объясняют практическую реализацию этого метода. Благодарю.

-3

Решение

  • Линия 48 является конструктор по умолчанию. Это код, который вызывается при объявлении переменной типа entryи не указывайте параметры инициализации.
  • Строка 49 — еще один конструктор. Это код, который вызывается при объявлении переменной типа entryи пройти два unsigned int параметры.
  • Строка 134 является декларацией ссылка типа entry, Амперсанд говорит, что ecur не является копией iter->second, а скорее ссылка на него. Любые изменения в ecur будет отражено в iter->secondпотому что они ссылаются на одну и ту же переменную.

Вы можете прочитать больше о конструкторах Вот.
Вот учебник по ссылочным переменным.

1

Другие решения


По вопросам рекламы [email protected]