Если необходимо искать многих время в том же списке, он может окупиться для создания индекса.
Выполняют итерации однажды через и создают HashMap с, равняется значению, которое Вы ищете как ключ и соответствующий узел как значение. Если Вам нужно, все вместо любого из данного равняются значению, то позволенный карта иметь тип значения списка и создает целый список в начальном повторении.
Обратите внимание на то, что необходимо иметь размеры прежде, чем сделать это, поскольку издержки создания индекса могут омрачить просто пересечение, пока ожидаемый узел не найден.
В этом случае вы возвращаете ссылку на объект ostream . Строгое представление об амперсанде как об «адресе» не всегда срабатывает. Вот некоторая информация из C ++ FAQ Lite по ссылкам.
Что касается константы, ее корректность очень важна для безопасности типов C ++, и вы захотите сделать столько, сколько сможете. Еще одна страница из FAQ помогает в этом отношении. const поможет вам избежать связанных с побочными эффектами изменений, которые могут привести к искажению ваших данных в ситуациях, когда вы этого не ожидали.
Это означает, что переменная является ссылкой. Это похоже на указатель, но не совсем.
См .: Ссылка (C ++)
В объявлениях типов C ++ амперсанд означает «ссылку». В этом случае оператор <<
возвращает ссылку на объект ostream
.
Поскольку он фактически возвращает * this
, это фактически то же самое ostream
и означает, что вы можете связать вызовы к operator <<
, аналогично этому:
os << "Hello" << " " << "World" << endl;
В зависимости от контекста амперсанда он может означать две разные вещи. Ответ на ваш конкретный вопрос: это ссылка, а не «адрес». Это очень разные вещи. Очень важно понимать разницу.
Причина, по которой параметры должны быть константными, состоит в том, чтобы гарантировать, что они не будут изменены функцией. Это гарантирует вызывающему функцию, что параметры, которые они передают, не будут изменены.