Декларатор ссылки lvalue: &
Содержит адрес объекта, но синтаксически ведет себя подобно объекту.
Ссылку lvalue можно считать другим именем для объекта. Объявление ссылки lvalue состоит из необязательного списка спецификаторов, за которым следует декларатор ссылки. Ссылка должна быть инициализирована и не может быть изменена.
Любой объект, адрес которого можно преобразовать в некоторый тип указателя, можно также преобразовать в аналогичный ссылочный тип. Например, любой объект, адрес которого можно преобразовать в тип char *, можно также преобразовать в тип char &.
В примере демонстрируется декларатор ссылки путем объявления объекта Person и ссылки на этот объект. Поскольку rFriend является ссылкой на myFriend, при обновлении любой из этих переменных изменяется один и тот же объект.
Содержит адрес объекта, но синтаксически ведет себя подобно объекту.
Ссылку lvalue можно считать другим именем для объекта. Объявление ссылки lvalue состоит из необязательного списка спецификаторов, за которым следует декларатор ссылки. Ссылка должна быть инициализирована и не может быть изменена.
Любой объект, адрес которого можно преобразовать в некоторый тип указателя, можно также преобразовать в аналогичный ссылочный тип. Например, любой объект, адрес которого можно преобразовать в тип char *, можно также преобразовать в тип char &.
В примере демонстрируется декларатор ссылки путем объявления объекта Person и ссылки на этот объект. Поскольку rFriend является ссылкой на myFriend, при обновлении любой из этих переменных изменяется один и тот же объект.
Топ-10 докладов на С++ конференциях 2019-2022 года
https://habr.com/ru/company/pvs-studio/blog/693872/
https://habr.com/ru/company/pvs-studio/blog/693872/
Хабр
Топ-10 докладов на С++ конференциях 2019-2022 года
В мире проходит множество интересных конференций по программированию. К сожалению, у нас нет телепорта, чтобы посещать каждую из них и слушать все интересующие нас доклады. Но зато мы можем посмотреть...
#вопросы_с_собеседований
Что выведет код сверху?
Ответ:
10 99 40 99
В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.
Что выведет код сверху?
Ответ:
В этой программе мы меняем местами определенные значения в двух векторах с помощью iter_swap.
Что нужно дописать, чтобы при вызове конструктора перемещения член класса действительно "переместился"?
Нужно дописать std::move в списке инициализации перемещающего конструктора:
Нужно дописать std::move в списке инициализации перемещающего конструктора:
A(A&& oth) : str(std::move(oth.str)){ }
Но это гарантирует "перемещение" только в том случае, если у этого объекта, в свою очередь, есть перемещающий конструктор (в данном случае, у std::string он есть).Алгоритм prev_permutation
Алгоритм переставляет элементы так, чтобы получилась предыдущая в лексикографическом порядке перестановка. Можно применять не только к векторам, но и к строкам (как и многие другие алгоритмы).
Метод возвращает true, если удалось построить предыдущую в лексикографическом порядке перестановку. Если же первоначальная перестановка уже была минимальной в лексикографическом порядке, то метод генерирует максимальную в лексикографическом порядке перестановку и возвращает false.
Алгоритм переставляет элементы так, чтобы получилась предыдущая в лексикографическом порядке перестановка. Можно применять не только к векторам, но и к строкам (как и многие другие алгоритмы).
Метод возвращает true, если удалось построить предыдущую в лексикографическом порядке перестановку. Если же первоначальная перестановка уже была минимальной в лексикографическом порядке, то метод генерирует максимальную в лексикографическом порядке перестановку и возвращает false.
Простой и понятный пример неопределенного поведения.
https://meetingcpp.com/blog/items/A-simple-and-clear-example-of-undefined-behavior.html
https://meetingcpp.com/blog/items/A-simple-and-clear-example-of-undefined-behavior.html
Stellarium — это бесплатное программное обеспечение GPL, которое визуализирует реалистичное небо в реальном времени с помощью OpenGL. Он доступен для Linux/Unix, Windows и macOS. В Stellarium вы действительно видите то, что можете увидеть своими глазами, биноклем или небольшим телескопом.
https://www.libhunt.com/r/stellarium
https://www.libhunt.com/r/stellarium
Libhunt
Stellarium Alternatives and Reviews
Which is the best alternative to stellarium? Based on common mentions it is: uBlock, Bypass-paywalls-chrome, SponsorBlock, Go-unsplash, Koneko, Bevy or Kodi Home Theater Software
Что выведет программа?
Anonymous Quiz
22%
0
46%
Мусорное значение
27%
Compiler Error
5%
Runtime Error
#вопросы_с_собеседований
Отличие перегрузки оператора от перегрузки функций?
Перегрузка функций даёт двум или более функциям с разными типами и количеством параметров иметь одно и то же имя. С другой стороны, перегрузка оператора позволяет переопределить способ работы оператора для пользовательских типов.
Отличие перегрузки оператора от перегрузки функций?
Перегрузка функций даёт двум или более функциям с разными типами и количеством параметров иметь одно и то же имя. С другой стороны, перегрузка оператора позволяет переопределить способ работы оператора для пользовательских типов.
This media is not supported in your browser
VIEW IN TELEGRAM
Дерево Фенвика
Довольно простая и быстрая, но совсем не очевидная в плане идеи и понимания структура данных. Позволяет находить сумму на префиксе и изменять отдельные элементы за O(log n). В следующем посте — реализация на C++.
Довольно простая и быстрая, но совсем не очевидная в плане идеи и понимания структура данных. Позволяет находить сумму на префиксе и изменять отдельные элементы за O(log n). В следующем посте — реализация на C++.
Структура представлена в виде массива f, в котором f[i] – сумма всех элементов от F[i] до i. Функция F(x) связана с битовым представлением аргумента. Вкратце можно описать так: F(x) заменяет группу единичных битов, находящихся в конце числа (младших) на нули. Если x заканчивается на нулевой бит, то F(x) = x. В битовых операциях F(x) задаётся так: F(x) = x & (x + 1).
Нам понадобятся три функции: прибавление x к элементу с индексом i, получение суммы дерева от 0до xи получение суммы на [a..b].
Нам понадобятся три функции: прибавление x к элементу с индексом i, получение суммы дерева от 0до xи получение суммы на [a..b].
Сколько и каких конструкторов класса std::string будет вызвано в коде?
Anonymous Quiz
49%
Конструктор по умолчанию + конструктор перемещения
17%
Конструктор по умолчанию + два конструктора перемещения
29%
Конструктор по умолчанию + конструктор перемещения + конструктор копирования
6%
Конструктор по умолчанию + два конструктора копирования