Constantine
ой ну нафиг
Ender
а из памяти у тебя есть только 1 байт для символа с stdin
Constantine
идите отсюда с вашими извращениями
Constantine
еще я информацию в младший бит ip не писал
Ender
ну просто я считаю правильно решивших самостоятельно эту задачу либо способным, либо стремящимися.
Ender
я сам без интернета в 9м классе в неё примерно 4 дня втыкал.
Matwey
Ты в ответе чо хочешь увидеть? Конечный автомат что-ли?
Constantine
а я считаю условия типа "у вас нет лишних О(1) памяти" наркоманскими
Constantine
пушо у вас всегда есть лишний регистр в этом коде
Constantine
намного лучше в качестве упражнения писать код, который должен строки по qword парсить
Constantine
и передавать спасибо господам, придумавших null-terminated string
Matwey
Ну можно такое изобразить, но зачем?
Constantine
Не знаю)
Alexander "SonnySlave"
Ender
Ну для меня как-то дико выглядят реплики @webreh, но тем не менее, я считаю, что при изучении конкретно языка Си вот это упражнение очень полезно для мозгов, для дальнейшего мышления.
Ender
Хотя решение там простое. while() {if() {while()}}
Constantine
Не вижу никакой пользы от реализации чего-либо через универсальный интерфейс
Ender
неплохо. но можно короче.
Ender
я тоже сперва именно так написал. но в этом и фишка.
Alexander "SonnySlave"
ах, прошу прощения
Олександр
А потом //magic happens here
Alexey
На мой взгляд, микрооптимизации не стоят потраченных на них усилий, если это не критическое по производительности место\нет жестких ограничений по памяти
Matwey
Олександр
char c;
while (c = getchar()) {
if (c == ' ') {
do {
c = getchar();
} while (c == ' ');
putchar(' ');
}
putchar(c);
}
Ender
тоже прикольно
Matwey
Ender
еее
Ender
а ещё пробел сохраняется
Ender
в c
Ender
какое-то время
Matwey
for(char c; c = getchar(); putchar(c)) {
if (c == ' ')
while( (c = getchar()) == ' ' );
}
Matwey
Как-то так по-моему надо
Matwey
Но я тут мог наврать уже
Ender
чётко
Ender
но лучше вайл.
Anonymous
ну я в свободное время задачи из книги ритчи делаю
У тебя есть выбор - либо и дальше читать всякую хрень (K&R), либо пойти почитать что-нибудь путьнее.
Вот тебе книга - Структура и интерпретация компьютерных программ. 2-е изд. [Добросвет, 2006].
Ender
#include <stdio.h>
int main(void)
{
char c;
while ((c=getchar())!='\n') // к примеру. можно int c, и EOF
{
if (c== ' ')
{
putchar(c);
while ((c=getchar())==' ');
}
putchar(c);
}
return 0;
}
Ender
правда в этом коде есть одна ошибка. но если поставить EOF, то ошибок, вроде, нет.
Ender
хотя, EOF наверное тоже сожрётся .-.
Berkus
Alexander "SonnySlave"
да он рофлит)
Berkus
чот хуйный у вас тут уровень
Ender
В чём ты с ним согласен?
Anonymous
Я не могу в алгаритмы и задачи, но гарантирую, эта задача никак не определяет уровень способностей или стараний.
Можно сравнить ее с задачей "побег от зурга", а потом подумать над тем какими должны быть задачи.
Ender
Почему K&R видели смысл не описывая целиком стандарт дать ряд вот таких практических задач, а затем уже приступать к более сложным вещам? Или они тупые, и это — бессмыслено?
Ender
Я ЩИТАЮ! что если человек не осилил иф и вайл толком и не умеет ими толком пользоваться херовый программист. Это моё личное мнение. И почти все прикладные задачи программирования так или иначе связаны с тем, что нужно что-то сделать при каком-то условии, либо что-то повторять несколько раз. Конкретно эта задача иллюстрирует то, как человек умеет пользоваться этими инструментами в контексте языка Си.
Berkus
Ender
во времена 4го издания книги (или третьего?) да.
Berkus
Alexander "SonnySlave"
так, что за бред тут обсуждается?
Ender
ну это еще до уровня программиста, это когда ты в бейсике делаешь хуйню когда балуешься в детстве - изучаешь иф и вайл
ну так, да. тем не менее, если человек учится писать код и имеет какую-то базу, минимальную, например, достаточную, чтобы написать пузырьковую сортировку, то подобные задачи, я считаю, могут быть очень полезны. to become a pro, epta
Berkus
Berkus
Berkus
ЦИКЛ, туркиш, ИФ
Zaur
в cmake
option(NANOGUI_BUILD_SHARED "Build NanoGUI example application?" ON)
message(${NANOGUI_BUILD_SHARED})
не меняется значение on/off после сборки. Чтобы изменения вступили в силу приходится удалять файл кеша. Но тогда весь проект перекомпиливается. Как это исправить? Простите за нубский вопрос, я новичок в мире c++ :)
Vasiliy
Zaur
прочитал шапку, наверно мне сюда @supapro с этим вопросом :)
Berkus
Berkus
для этого опции и придумали
Alexander "SonnySlave"
https://usingstdcpp.org/2018/03/18/jacksonville18-iso-cpp-report/
Denis
привет народ, играюсь тут с конструкторами перемешения и столкнулся с такой вещью, подскажите как красиво это обойти
Denis
void insert(T&& value)
{
_node* node = new _node(move(value));
if (!contains(node->data)) {
_insert(node);
} else {
delete node;
}
}
Denis
сообтсвенно если у нас const T& value то проблем нету по созданию и удалению
Denis
а если T&& то не знаю как избежать создания и затем удаления
Denis
спасибо :)
Александр
void insert(T&& value)
{
if (!contains(value)) {
_insert(new _node(move(value)));
}
}
Александр
сомневаюсь, что contains имеет разную реализацию для const T& и T&&
Aidar
std::forward еще
Александр
тут не универсальная ссылка
Denis
блин, чувак! ты сделал мой день!
Aidar
вижу T говорю шаблон
Denis
спасибо тебе!
Александр
Denis
я перемудрил