Взятие листа от Scott Meyers, Более эффективный C++ Объект 6: Различайте префикс и снабдите постфиксом формы инкрементных и декрементных операций .
версия префикса всегда предпочитается по постфиксу в отношении объектов, особенно в отношении итераторов.
причина этого, если Вы смотрите на шаблон вызова операторов.
// Prefix
Integer& Integer::operator++()
{
*this += 1;
return *this;
}
// Postfix
const Integer Integer::operator++(int)
{
Integer oldValue = *this;
++(*this);
return oldValue;
}
Рассмотрение этого примера легко видеть, как префиксный оператор всегда будет более эффективным, чем постфикс. Из-за потребности во временном объекте в использовании постфикса.
Поэтому, когда Вы видите, что примеры используют итераторы, они всегда используют версию префикса.
, Но как Вы указываете для интервала, нет эффективно никакого различия из-за оптимизации компилятора, которая может произойти.
Похоже, у вас есть проблемы с липкими клавишами, которые мешают вам войти в систему. (Если это правильно, тогда вы можете удалить клавиатуру с ноутбука.
Google: как удалить клавиатуру «ЗАМЕНИТЕ ЭТО БЕЗ ВАШЕГО МОДЕЛЬНОГО ИМЕНИ COUPUTER». И следуйте инструкциям , это довольно просто. В большинстве случаев вам даже не нужно выкручивать винты. Перейдите на http://www.aliexpress.com / и закажите себе новую клавиатуру для этого компьютера, и пока вы ждете ее, подключите внешнюю USB-клавиатуру к компьютеру и сможете войти в нее.
Вы должны уточнить, возможность входа в компьютер, удаленного доступа к нему через SSH или VNC. (тогда другим будет проще объяснить вам, что делать.
, если вы сможете войти в систему, вы можете попытаться открыть новый В терминале введите CTRL + ALT + T и введите
sudo nano /boot/grub/grub.cfg
Добавьте
i8042.nokbd
в конец файла и сохраните файл
CTRL + X (введите Y) и введите
и введите
sudo update-grub
В поле erminal
Ну, я мог бы предложить аппаратное решение. Вы можете найти руководство для ноутбука, открыть его (отвертки и т. Д.), Найти разъем, соединяющий встроенную клавиатуру и материнскую плату ноутбука (на моем HP dv3 это было относительно просто), и отключить его. Тогда у вас больше не будет случайных нажатий клавиш. Пока вы на нем, вы можете вынуть клавиатуру и посмотреть, можно ли ее почистить, чтобы заставить ее вести себя.
Что касается программного решения, вы можете поместить xinput set-int-prop 14 "Device Enabled" 8 0
(согласно вашему текущему решению) в /etc/rc.local
. Вам нужно вставить свою команду в этот файл до exit 0
. Подробнее см. Можно ли выполнить команду перед входом в экран? .
i8042.nokbd
shouldn' t быть добавленным до конца/boot/grub/grub.cfg
файл. Это было бы синтаксической ошибкой там и будет перезаписано, как только Вы работаетеsudo update-grub
. Та строка должна быть добавлена к/etc/default/grub
файл, вGRUB_CMDLINE_LINUX_DEFAULT=
строка, так, чтобы строка считала что-то какGRUB_CMDLINE_LINUX_DEFAULT="quiet splash i8042.nokbd"
, затем работатьsudo update-grub
. – Dan McGrath 13.05.2020, 12:35