Я только начал изучать «класс» и другие продвинутые методы в 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, увидит это: не могли бы вы объяснить мне или предложить какие-либо ссылки, которые объясняют практическую реализацию этого метода. Благодарю.
entry
и не указывайте параметры инициализации.entry
и пройти два unsigned int
параметры.entry
, Амперсанд говорит, что ecur
не является копией iter->second
, а скорее ссылка на него. Любые изменения в ecur
будет отражено в iter->second
потому что они ссылаются на одну и ту же переменную.Вы можете прочитать больше о конструкторах Вот.
Вот учебник по ссылочным переменным.