Главная Настройка Mobile Контакты NSFW Каталог Пожертвования Купить пасскод Pics Adult Pics API Архив Реквест доски Каталог стикеров Реклама
Доски


[Ответить в тред] Ответить в тред

Check this out!


[Назад][Обновить тред][Вниз][Каталог] [ Автообновление ] 678 | 50 | 180
Назад Вниз Каталог Обновить

C++ #52 Аноним 19/05/17 Птн 19:47:36  993446  
1964273bd7fd247[...].png (75Кб, 400x400)
Вместо шапки - https://github.com/sosachbot/cppthreadhat/wiki
Ответы на все вопросы - http://en.cppreference.com/w/ http://www.cplusplus.com/reference/

Прошлый >>979476 (OP)

Теги: кресты, cpp
Аноним 19/05/17 Птн 20:43:44  993469
Я тут читал гайд по правильному оформлению кода, да и от других подобное слышал то что строки более чем из 80 символов следует переносить на новую строку. Стоит ли это делать? И что если у меня блоки кода только уходят на 40 символов? Как тогда переносить код?
Аноним 19/05/17 Птн 21:05:19  993481
>>993469
Твоё только в /dev/null переносить.
Аноним 19/05/17 Птн 21:07:11  993485
>>993481
Твой мозг уже там
Аноним 19/05/17 Птн 21:18:41  993489
>>993469
да
Аноним 19/05/17 Птн 22:10:16  993512
>>993469
В фирмах, где макакам выдают мониторы моложе 2002 года, и которые больше 19" в диагональ, обычно строку делают в 120 символов. Но, можешь не волноваться, тебя даже в самый закудышный бодишоп не возьмут.
Аноним 19/05/17 Птн 22:23:49  993517
>>993469
http://e-maxx.ru/bookz/files/golub_cord.pdf
Аноним 20/05/17 Суб 00:48:59  993595
Ононы, как в визуалке 2010 года можно сделать чтобы по нажатию на button отредактировало в определенных местах готовый word документ?
Добавил СОМ-ссылку Microsoft Office 14.0 Object Library и Microsoft Word 14.0 Object Library, ничего не выходит.
Пробовал делать по учебнику MS Visual C++ 2010 в среде .NET. Нихуя не вышло. Шляпа срочно нужна для диплома, но в С++ я ни в зуб ногой.
Аноним 20/05/17 Суб 01:09:21  993609
>>993595
OLE Automation
Аноним 20/05/17 Суб 01:18:27  993614
Почему не получается функцией WriteConsoleOutbutA вывести символы псевдографики?
Вместо этого выводит знаки вопроса или какую-то мишуру, в зависимости от шрифта. В то время как тот же набор данных выводится обычным cout безупречно, да и другие символы вроде латинских букв выводятся WriteConsoleOutbutA как надо. В чем проблема?
Аноним 20/05/17 Суб 01:20:50  993617
blob (70Кб, 673x483)
>>993609
Нету такого.
Аноним 20/05/17 Суб 01:22:40  993618
>>993614
>Вместо этого выводит пробелы, знаки вопроса или какую-то мишуру, в зависимости от шрифта.
Аноним 20/05/17 Суб 01:30:47  993624
>>993617
В COM-компонентах.
Аноним 20/05/17 Суб 01:43:49  993628
>>993595
Вообще на крестах это писать - ад, лучше всего на c# бахнуть или js+activex.
Вот по шарпу мануал
https://support.microsoft.com/en-us/help/316384/how-to-automate-microsoft-word-to-create-a-new-document-by-using-visual-c
Аноним 20/05/17 Суб 01:49:55  993633
>>993614
Опять эти спермоклоуны со своей командной строкой из 1992 года
Аноним 20/05/17 Суб 01:58:10  993637
>>993624
Одновременно чекал. Там тоже нету.

>>993628
Дак сказали эту хуйню на ЗИБЛЮЗБЛЮЗ писать. Был бы выбор - писал на своем питоне или шарпе.
Аноним 20/05/17 Суб 02:31:04  993645
>>993633
Сказал прыщеклован, у которого и в 2017 ничего, кроме командной строки, толком и нет.
Аноним 20/05/17 Суб 06:15:36  993663
VqCtP5K2o-M.jpg (3Кб, 121x162)
>>993614
Это какой-то пиздец, господа. Переключил я шрифт сосноли с точечного на lucida - пробелы превратились в вопросики. Запустил программу еще раз - теперь все нормально отпечатано, в lucida. Поменял шрифт на точечный, точно такой же, какой был изначально - и теперь символы выглядят нормально и на изначальном шрифте. Запустил программу в третий раз - и теперь все символы отображаются на изначальном шрифте без переключения шрифта. Что это за хуйня? Как это работает? Как мне создать приложение, которое, например, выводит cp437 на дефолтном шрифте с любого компьютера без ебатни со шрифтами, бесплатно без формочек и юникода?
Аноним 20/05/17 Суб 06:17:21  993665
>>993663
Ах тыж блять, запустил программу в четвертый раз, и снова вместо символов пробелы. Что за ебаный пиздец?
Аноним 20/05/17 Суб 06:29:50  993666
>>993665
Нашел новую деталь: эти символы отображаются как пробелы только в точечном шрифте 8х12. Вернее, не все, а все, кроме вот этого: . Поэтому в моей коробке всегда рисуется только верхний правый угол.
Так вот, в точечном шрифте 7х12 все символы отображаются как , кроме того самого уголочка, который стойко держится в верхнем правом углу. При чем они не только превращаются в треугольники при переключении шрифта, но и остаются такими при перезапуске программы.
5x12 - аналогично.
8x9 - снова пробелы.
6х9 - то ли снова треугольники, то ли запятые какие-то, мелко, плохо видно. Угол на месте.
16x8 - пробелы.
4х6 - походу, треугольники, мелко пиздец.
16х12 - пробелы.
12х16 - ну вот тут уже точно апострофы или запятые развернутые.
10x18 - треугольники.

Продолжаю зоонаблюдения и запрашиваю помощи.
Аноним 20/05/17 Суб 06:31:44  993667
>>993666
Пиздец, макаба не пускает символы. Короче, угол который отображается - в таблице https://en.wikipedia.org/wiki/Code_page_437 под номером 187. Треугольник - 31.
Аноним 20/05/17 Суб 06:41:42  993668
>>993663
Нахуя тебе все это сдалось?! Сделай, если уже так надо, свою псевдо-консоль на гуе, если ты там какой-то рогалик пилишь или что. На винде командная строка КОНЧЕНАЯ, это тебе не zsh или bash хотя бы.
Аноним 20/05/17 Суб 06:50:20  993670
Еще одно зоонаблюдение: если ставить цп сосноли через SetConsoleOutputCP или system("chcp 437") (не имеет значения) - то символы перестают отображаться даже при cout. Если убрать это и оставить дефолтную 866, то символы отображаются через cout безупречно.
Аноним 20/05/17 Суб 06:50:59  993671
>>993668
Есть какой-нибудь гайд, как так сделать? Был бы премного благодарен.
Аноним 20/05/17 Суб 09:07:55  993683
Здравствуйте, не подскажите какой-нибдуь ресурс по созданию GUI приложений на QT либо на VS. Буду очень благодарен!
Аноним 20/05/17 Суб 10:20:26  993700
>>993683
> не подскажите какой-нибдуь ресурс по созданию GUI приложений на QT
doc.qt.io
Аноним 20/05/17 Суб 11:45:48  993724
>>993637
Ну вот просмотри. Можёт что наковыряешь.
https://code.msdn.microsoft.com/office/CppAutomateWord-28938be1
Аноним 20/05/17 Суб 11:48:22  993726
>>993637
Вот ещё мануал.
https://support.microsoft.com/en-us/help/316587/how-to-automate-embedded-office-activex-documents-with-c
Аноним 20/05/17 Суб 12:08:05  993732
>>993671
Гайд хз, но думаю чувак предлагает через winapi создавать окно, сделать его черным, и имитировать командную строку окном с текстовым полем внутри главного окна шириной в всё окно и высотой с 1 символ
Аноним 20/05/17 Суб 12:17:51  993735
>>993469
Строки должны быть такие, чтобы при их чтении целевой аудитории не приходилось водить горизонтальный скролл туда-сюда. Из этого выходит:
Если ты пишешь говнокод в стол - длина любая.
Если ты в закрытой конторе, и у всех стоят одинаковые мониторы, и никто не пользуется разделением окон - тогда на всю ширину ваших мониторов.
Ширина в 80 символов была придумана хуилион лет назад, когда нужно было выбрать минимально читаемый размер символов для консольных терминалов. Собственно, это просто стандарт, который актуален, если иное не указано.
Лучше, если чтение кода даже не будет заставлять двигать глаза по горизонтали.

В любом случае, правила написания кода нужны для того, чтобы код удобно было читать.
Аноним 20/05/17 Суб 13:13:27  993754
>>993645
Спермодебилу НИБАМБИТ
Аноним 20/05/17 Суб 13:13:59  993755
>>993614
>>993663
Спермодебилы, обсуждайте WinAPI и спермопроблемы проблемы в /s/
Аноним 20/05/17 Суб 13:18:26  993756
>>993668
> На винде командная строка КОНЧЕНАЯ
Говорят, с полгода назад она начала поддерживать управляющие ASCII-коды. Всего-то 40 лет прошло с момента принятия стандарта.
Аноним 20/05/17 Суб 13:30:39  993757
>>993671
Я бы ради прикола завел все на OpenGL, но еботы с этим, конечно же, прибавится, хотя, в целом, ничего сложного быть не должно. Плюс опыта в корзину (научишься шрифты рендерить и рисовать полигоны текстурированные).
Я бы, может, такой хуйней сам занялся. Да лень пиздец. Пойду лучше посру.
Аноним 20/05/17 Суб 13:36:49  993759
Как можно замерить время выполнения функции?
Аноним 20/05/17 Суб 13:50:28  993762
>>993759
http://www.cplusplus.com/reference/chrono/
Аноним 20/05/17 Суб 14:36:46  993778
>>993671
http://www.libsdl.org/
http://lazyfoo.net/tutorials/SDL/index.php
https://habrahabr.ru/post/198600/
Аноним 20/05/17 Суб 14:50:35  993781
>>993671
Если у тебя десяточка, включай WSL и наслаждайся рабочей консолью и соответствующим стандарту компилятором.
--- 20/05/17 Суб 15:09:49  993793
image.png (40Кб, 683x390)
С помощью каких алгоритмов это можно реализовать? Зачет горит.
Аноним 20/05/17 Суб 15:17:32  993795
>>993724
>>993726
Скачал какую-то библиотечку. Нихуя не понял. Не осилил.
Аноним 20/05/17 Суб 15:18:17  993796
>>993793
Это матан
Какие нахуй алгоритмы?
Аноним 20/05/17 Суб 15:20:18  993798
>>993796
Это линал
Какой нахуй матан?
Аноним 20/05/17 Суб 15:23:28  993799
>>993793
google -> line segment intersection
Аноним 20/05/17 Суб 15:42:03  993802
>>993793
мне в свое время сильно помог этот ответ: http://stackoverflow.com/a/565282
Аноним 20/05/17 Суб 16:09:13  993810
В заочном тестовом задании мне надо было разработать класс. В ТЗ были указаны конструктор по умолчанию, конструктор копирования и деструктор. Чтобы соблюсти правило трех, я добавил еще оператор присваивания (было разрешено добавлять свой функционал). Стоит ли еще добавить конструктор перемещения и оператор присваивания при перемещении для правила пяти, если меня об этом не просили?
Аноним 20/05/17 Суб 16:10:45  993812
>>993810
> Стоит ли еще добавить конструктор перемещения и оператор присваивания при перемещении
Вряд ли они знают, что это такое.
Аноним 20/05/17 Суб 16:11:31  993813
>>993810
Конечно стоит, иначе не пройдёшь тест.
директор-той-конторы
Аноним 20/05/17 Суб 16:13:00  993814
>>993810
Правило пяти нужно для того, чтобы вспоминать о нем, когда класс становится реально сложным.
В твоем примере ты можешь их добавить, чтобы показать что ты о нем знаешь. А так, если бы ты делал это для себя, то не надо.
Аноним 20/05/17 Суб 17:07:07  993831
Как узнать количество определенного символа в одной строке?
Аноним 20/05/17 Суб 17:08:55  993832
>>993831
http://stackoverflow.com/questions/3867890/count-character-occurrences-in-a-string
Аноним 20/05/17 Суб 17:14:43  993836
>>993810
>> В заочном тестовом задании мне надо было разработать класс
>> было разрешено добавлять свой функционал
Охуеть задачи, одна охуительнее другой.
Аноним 20/05/17 Суб 17:25:55  993842
Как вы парсите строки?
Хочу читать OBJ файлы, у которых обычно они имеют вид: <тип данных> <данные>
Пока есть идея завести словарь из строковых литералов типов и лямбд для разбора данных.
Получился вот такой пиздец https://pastebin.com/NQvtWifE
Есть идеи получше?
Аноним 20/05/17 Суб 17:51:38  993863
>>993798
Это аналгеом какой линал?
Аноним 20/05/17 Суб 18:02:55  993865
>>993842
С таким же успехом можешь использовать указатели на функции, которые можешь разместить в анонимном пространстве имен, вместо того, чтобы использовать функциональные объекты (хотя, расходы будут небольшие, если лямбды помещяются в кусочек выделенной памяти функциональным объектом, однако здесь это не то место, где нужно искать оптимизации).

Наверно, вместо этой тягомотины, что ты написал, проще было бы получать данные через sscanf если уж в c код полез.
Аноним 20/05/17 Суб 18:05:55  993866
>>993793
Пиздец какой-то, какие-то наложения, числа, перечения. В выводе вообще цифры какие-то, нихуя не понял. Чему вас там учат?
Аноним 20/05/17 Суб 19:08:07  993894
chto.jpg (130Кб, 1073x420)
netakj.jpg (188Кб, 684x667)
блядь, что не так то?
Аноним 20/05/17 Суб 19:18:48  993895
>>993866
>Чему вас там учат?
Это называется утилизацiя человечишков. Чтобы не мешались под ногами у номенклатурных сынков и дедков со связями в ЦК КПСС.
Аноним 20/05/17 Суб 20:13:32  993917
Нужен ли деструктор в собственном итераторе?
Аноним 20/05/17 Суб 20:24:57  993922
>новые стандарты принимаются каждые три года, сохраняя при этом полную обратную совместимость с предыдущими.
Несколько неправда.
Аноним 20/05/17 Суб 20:28:11  993923
>>993865
>если уж в c код полез
Где, например?
Мне наоборот хочется в стиле плюсов делать, только что-то не понимаю что это значит.
Аноним 20/05/17 Суб 20:34:34  993925
>>993923
Да хоть те же регекспы.
Аноним 20/05/17 Суб 20:36:11  993926
Если я напишу

typedef unsigned int zalupa;

То zalupa будет читаться как "unsigned int"?
Аноним 20/05/17 Суб 20:36:58  993927
>>993926
да. Но вообще, сейчас уже не 1999 год, по-этому
using zalupa = unsigned int;
Аноним 20/05/17 Суб 20:38:09  993928
>>993927

Здорово! Спасибо.
Аноним 20/05/17 Суб 21:20:09  993935
Как на последний Visual Studio установить этот самый сишарп?
У меня уже дикий бугурт, ничего непонятно.
Аноним 20/05/17 Суб 21:27:30  993938
>>993935
Visual Studio 2015 Community, всё есть там из коробки. Проследуйте к шарпоёбам за деталями.
Аноним 20/05/17 Суб 21:32:06  993939
>>993935
>>993938
Орнул с даунов

Вызовите мастера-программиста на дом и он вам за пятихаточку всё сделает
Аноним 20/05/17 Суб 21:37:24  993942
>>993935
Ай блджад, тредом промахнулся, сорри
Аноним 20/05/17 Суб 23:32:37  993984
Создаю объект:
``
angle = new ModelAngle();
fprintf(stderr, "angle = %X\n", angle);
``

В его конструкторе:
``
ModelAngle::ModelAngle()
{
fprintf(stderr, "ModelAngle = %X\n", this);
}
``

И что ж я вижу?
``
ModelAngle = 1F31160
angle = 1F31180

``

Ну и при удалении:
``
Error in `./a.out': double free or corruption (out): 0x0000000001f31180
``

Почему адреса не совпадают?
Аноним 20/05/17 Суб 23:37:34  993985
>>993984
Братишка, жахни через ideone.
Аноним 20/05/17 Суб 23:57:28  993999
>>993985
https://ideone.com/AbcCuC
Аноним 21/05/17 Вск 00:05:24  994004
>>993999
Ну тут на 8 байт отличается, а не на 32, но всё равно отличается.
Я где-то с наследованием накосячил?
Аноним 21/05/17 Вск 00:14:42  994007
>>993999
Да, в моём коде у базового класса полей на 24 байта. Вот и разница на 32 байта.
Это же 8 байт - длина указателя vtbl? Или чего? Почему так?
Аноним 21/05/17 Вск 00:35:13  994018
>>994007
http://stackoverflow.com/questions/22256620/why-pointers-to-the-same-object-have-different-values

По поводу падения программы: на Angle нужен виртуальный деструктор.
Аноним 21/05/17 Вск 09:39:07  994061
>>994018
А ведь ты прав.
https://ideone.com/VuJKVb
Аноним 21/05/17 Вск 12:19:29  994094
Анон, есть пера вопросов.

Если член класа это вектор. Нужно ли его руками очищать в деструкторе?

И второй вопрос. Есть класс, который содержит некоторые поля и другой объект.

class A {
private:
int x;
B b;
}

Как объект B может получить доуступк х?
Аноним 21/05/17 Вск 12:25:12  994097
>>994018
Хм, и правда. Но адреса всё равно не совпадают.
То есть указатель на Angle на 8 байт (vtbl?) отличается от указателя.
То есть, указатель на Angle в принципе не должен знать, что этот Angle является ещё и ModelDevice?

И таки да, если изменить порядок наследования, адреса совпадают.
Аноним 21/05/17 Вск 12:26:54  994098
>>994094
Передаешь в класс B указатель на класс A. Объявляешь хоть где в декларации класса дружественный класс, то есть friend class B; Тогда B будет иметь доступ КО ВСЕМ членам класса А.
Аноним 21/05/17 Вск 12:30:31  994100
>>994094
>Если член класа это вектор. Нужно ли его руками очищать в деструкторе?
Не нужно. Деструктор вектора сам удалит своё содержимое. Другое дело, если вектор хранит указатели на объекты в куче, которые ты создавал через new. Тогда да, их надо удалять самому.

>Как объект B может получить доуступк х?
Лолникак. Объявить friend class B внутри A. Только по-моему это говорит о том, что ты что-то делаешь неправильно.
Аноним 21/05/17 Вск 12:36:17  994106
>>994100
>>994098
Спасибо.

>Только по-моему это говорит о том, что ты что-то делаешь неправильно.
Вероятней всего.
У меня следующая проблема. Есть вектор с объектами и все эти объекты должны использовать несоклько общих переменных. Сделать через глобальные переменные - некрасиво. А как правильно?
Аноним 21/05/17 Вск 12:46:17  994109
>>993999
Probeloblyad is not a men.
Аноним 21/05/17 Вск 13:01:33  994114
>>993894
Добавь boost_system в линкер
Аноним 21/05/17 Вск 13:02:53  994115
>>994018
Во, и если сделать
delete(dynamic_cast<ModelAngle*>(angle));
то тоже всё работает.
Аноним 21/05/17 Вск 13:51:01  994140
правильно.png (7Кб, 505x385)
Господа, прошу, я заебался. Ну не понимаю я что происходит.

Фишка в чём? У меня программа... работает. Но она не работает под убунтой и вообще на университетских компьютерах. Не работает и в IDEONE (ну, там тоже gcc++).
Я даже почти уверен, что я действительно не прав и то, что программа работает у меня и одногруппников - заслуга, скорее, компилятора, чем моя. Прошу, помогите.
Правильный вывод - на пике.

Текст программы (ну, последнее изменение):
pastebin.com/Ys6u2W9b

Ошибки в IDEONE
Прошлая версия: http://ideone.com/FwMMBa
Последняя версия: http://ideone.com/zdkbHQ
Аноним 21/05/17 Вск 14:01:01  994146
Инициализация переменной – это?
1 Каждое присвоение ей значения
2 Последнее использование переменной
3 Объявление переменной
4 Первое присвоение ей значения
Аноним 21/05/17 Вск 14:11:01  994153
>>994146
3 и 4 одновременно.
Аноним 21/05/17 Вск 14:15:52  994156
>>994146
4
Аноним 21/05/17 Вск 14:24:41  994158
>>994140
В рализации функции которая начинатеся с 15 строки нет возвращаемого значения, тогда как сигнатура требует. Получается UB (скорее всего все кончается разименованием нулевого указателя) поэтому результаты в разных компиляторах разные. Тот в котором работает (скорее всего) отпимизирует код выбросив нахуй код с UB (хитрожопые оптимизирующие компиляторы такое любят), потому и кажеться что "работает". Если интересно можешь изменить 392 строку на что-то типа cout << endl << a << endl << "TEST" << endl; и запустить на компиляторе на котором "работало" чтобы посмотреть как работает теперь.
Аноним 21/05/17 Вск 14:26:29  994159
>>994158
Почему она вообще скомпилировалась? Всегда же ругается, если не выводится ничего.
Аноним 21/05/17 Вск 14:35:48  994167
Снимок.PNG (20Кб, 1067x343)
Зочем писать произвольный блок кода не связанный ни с каким оператором в фигурных скобках?
Аноним 21/05/17 Вск 14:36:36  994168
>>994159
Предупреждения зависят от ключей. Почти что самые параноидальные - -Wall -pedantic для gcc.
Аноним 21/05/17 Вск 14:37:16  994170
>>994159
Всегда ругался скорее всего статический анализатор твоей IDE. А комплятору похуй. В gcc вроде можно ворнинг включить. Ну и в main стандарт разрешает не писать return - должно добавляться return 0.
Аноним 21/05/17 Вск 14:38:48  994172
>>994167
Чтобы переменные разрушались, и освобождалось место и другие ресурсы, связанные с переменными (мьютексы, например).
Аноним 21/05/17 Вск 14:39:19  994173
>>994167
Чтобы ограничить видимость переменной dos_header или чтобы переменная dos_header уничтожилась сразу а не в самом конце выполнения функции (внешнего блока кода).
Аноним 21/05/17 Вск 14:39:47  994174
>>994172
>>994173
А, типа скоуп такой неявный? Спасибо.
Аноним 21/05/17 Вск 14:41:00  994175
>>994158
>>994159

Окей, допустим. Но умножение-то всё равно не правильно работает (в последней версии), а если брать старую, то там всё равно ошибка двойного освобождения памяти. И у меня, хех, всё ещё работает
http://ideone.com/v6ClEO
Аноним 21/05/17 Вск 14:41:50  994177
>>994175
*неправильно
А сылка на старую-исправленную
Аноним 21/05/17 Вск 14:56:39  994184
>>994174
В нём нет ничего неявного. Фигурные скобки - это блок кода (statement по стандарту, ЕМНИП), а не часть while-if-чототам. while и for могут быть вообще без фигурных скобок.
Аноним 21/05/17 Вск 15:01:47  994187
>>994174
Это скоуп явный.
Аноним 21/05/17 Вск 15:10:35  994188
>>994140
> Фишка в чём? У меня программа... работает.
Хуй с два. Компилируется ≠ работает.

>pastebin.com/Ys6u2W9b
Ну полюбуйся на отчёт valgrind-а для твоей "работающей" программы. Куча use after free.
http://paste.ubuntu.com/24616911/
Аноним 21/05/17 Вск 15:11:58  994190
>>994140
>я заебался. Ну не понимаю я что происходит.
Для этого придумали valgrind.
Аноним 21/05/17 Вск 15:18:25  994194
>>994190
>>994188

Ну, она выдаёт тот результат который нужен - значит работает. Просто не везде и через жопу.


>valgrind
Я даже не знаю, что это. Погуглю.

>use after free.
Ну, это довольно очевидно учитывая ошибки двойного осовбождения в другом компиляторе. Делать-то что? Я не понимаю что я делаю не так. Возможно, потому, что я мыслю категориями языков в которых нет ебучих указателей и ссылок. И где можно спавнить объекты по КД, возвращать объекты(ссылки) на объекты созданные внутри функций и так далее, а они сами уж когда нибудь, когда станут ненужны, исчезнут.
И я всё ранво не понимаю, что происходит :(

Аноним 21/05/17 Вск 15:24:05  994200
>>994194
> Делать-то что?
Непонятно, зачем в Vector::copy ты выделяешь/освобождаешь память. Судя по логике работы Vector::operator=, copy должна просто копировать из другого массива.
Подумай над этим.
Аноним 21/05/17 Вск 15:25:53  994202
>>994194
>>994200
Переделал твой copy к такому виду:
void copy(int *v) {
for (int i = 0; i<this->n; i++) {
this->v = v;
}
}
Результат налицо: http://paste.ubuntu.com/24616978/
Аноним 21/05/17 Вск 15:26:50  994203
>>994200
cpp.sh/4fybt

А тут работает. Только с рандомом что-то не так.

>в Vector::copy
Я его вообще сотру если надо. Он был нужен для того куска который уже переписан иначе.
Аноним 21/05/17 Вск 15:27:41  994206
copy.png (2Кб, 448x92)
>>994202
Макака потёрла индексацию
Аноним 21/05/17 Вск 15:29:40  994207
>>994202
хм. Когда-то он выглядел именно так. Но, видимо, была другая ошибка и всё равно ничего не работало. А сейчас она исправлена. Спасибо.
Хотя я всё равно не совсем понимаю. C не может хранить объекты? Он удаляет их сразу после завершения функции? Или что?
Аноним 21/05/17 Вск 15:30:24  994208
>>994207
Ты их удаляешь когда не надо.
Аноним 21/05/17 Вск 15:31:12  994209
>>994208
Я где-то явно писал удаление? о.О
Аноним 21/05/17 Вск 15:38:03  994216
>>994202
http://codepad.org/hHhWINzD
IDEONE, кажется, лихорадит, Я попробовал запустить здесь с исправленным copy.
Опять ошибается, там где переопределённое умножение (ну, и, соответственно, те же проблемы будут со сложением и прочим. Понять бы что не так и я исправлю их все)
Аноним 21/05/17 Вск 15:41:52  994220
>>994106
Ну передай указатель на структуру с этими переменными или на каждую переменную, по желанию, в конструктор или через сеттер. И все дела.
Аноним 21/05/17 Вск 15:44:09  994222
>>994216
>Опять ошибается
Скомпилировал с -O3
http://paste.ubuntu.com/24617060/
Аноним 21/05/17 Вск 15:52:52  994227
>>994222
Единственное, что я могу понять так это то, что в твоём компилировании он всё же запихивает правельные значения (64-8-8-4), в отличии от codepad, у которого там уже лежит стрёмная хрень. Но это и всё.
Аноним 21/05/17 Вск 15:57:01  994230
>>994222
http://codepad.org/TwwiR44r
Я вижу ошибки связанные с ostream. Но всё, что я могу придумать - это сделать вот так. И это не поможет с остальным
Аноним 21/05/17 Вск 15:57:06  994231
operator=.png (9Кб, 851x271)
Вообще шикарный код.
@return Ничего не возвращает
В конце стоит return, который возвращает.
В начале офигенно сделана проверка на присваивание самому себе. Через оператор ==. Ну, в принципе, сравнивать адрес this с адресом аргумента бессмысленно, т.к. последний передаётся по значению, а не по ссылке.

У Страуструпа, кажется, была имплементация вектора в книге. Почитай, что ли.

Складывается впечатление что тут проще переписать с нуля.


P.S. и принято исключения наследовать от подходящего исключения из стандартной библиотеки и переопределять функцию what(), а не operator<< для исключения.
Аноним 21/05/17 Вск 16:04:02  994238
Можете рассказать о подводных камнях использования std::ofstream?
1. Нужно ли вызывать flush() после каждой записи, зачем он вообще нужен?
2. Что нужно проверять, чтоб понять, что операция прошла успешно? Всякие там good()/bad()?
3. Вообще std::ofstream еще актуален или уже устарел?
4. Позволяет ли он писать внахлёст в середину файла? 5. Чтобы вставить данные в середину файла нужно перезаписать первую половину в новый файл, добавить новые данные, и потом продолжать писать вторую половину?
Аноним 21/05/17 Вск 16:07:06  994240
>>994231
>@return Ничего не возвращает
>В конце стоит return, который возвращает.
Очевидно, потому, что раньше он ничего и не возвращал. Я за сегодня этот оператор трижды переписал пока у меня хотя бы до умножения стало доходить.
>проверка на присваивание самому себе.
Это не она, хех. Это проверка, скорее, в духе "если у них одинаковая длина и каждое значение одинаково, то ничего присваивать и не нужно"


>P.S. и принято исключения наследовать от подходящего исключения из стандартной библиотеки и переопределять функцию what(), а не operator<< для исключения.

Про это как-то не натыкался, но спасибо, это я бы хотел сделать.

Переписать с нуля? Можно. А толку-то? У меня всё равно будут ошибки связанные с памятью. Потому, что я не понимаю, как работает память. Все эи задания с сололёрнов прохожу, но в итоге ничего не могу вынести. Мне бы сдать это и забыть про кресты, но... эх
Аноним 21/05/17 Вск 16:13:35  994244
>>994240
>Переписать с нуля? Можно. А толку-то? У меня всё равно будут ошибки связанные с памятью.
Переписать с нуля, глядя в Страуструпа. Чтоб была нормальная работа с памятью. А арифметические операции добавить можно за 10 минут.
Аноним 21/05/17 Вск 16:20:56  994251
66842.jpg (189Кб, 800x533)
>>994244
Ну, он милый, конечно, но как это поможет мне получить решение?
А если речь про книгу, то не уверен, что я осилю это в столь сжатые сроки. Или там есть конкретно, хм, глава? Статья? в которой все проблемы решены?
Аноним 21/05/17 Вск 16:22:54  994252
>>994251
>Или там есть конкретно, хм, глава?
Я не знаю, я же не читал сам.
Но похоже, что 17-я и 18-я.
Аноним 21/05/17 Вск 16:25:08  994254
>>994244
ААААА!
http://codepad.org/7cEMqbmp
Ну тут-то что? Вроде и функций никаких нет трогающих память, а всё равно дрянь какая-то выходит.

При том матрицы, с которых я сегодня начал слизывать вектора, потому, что, очевидно, сам совсем бы проблемами не разобрался - работают прекрасно
http://codepad.org/Jlh479m0
Аноним 21/05/17 Вск 16:25:13  994255
image.png (383Кб, 604x604)
>>994251
http://codepad.org/pgar8feS
Аноним 21/05/17 Вск 16:26:27  994258
>>994255
cпасибо, Иисус. А что ты изменил?
Аноним 21/05/17 Вск 16:26:45  994259
>>994258
На деструктор посмотри.
Аноним 21/05/17 Вск 16:28:08  994261
>>994254
>http://codepad.org/7cEMqbmp
http://paste.ubuntu.com/24617287/
Аноним 21/05/17 Вск 16:29:42  994262
>>994259
но... блять. Как так-то?
Я думал "деструктор - функция которая вызывается в момент уничтожения объекта", которая нужна, собственно, чтоб очистить память. Разве не нужно там удалить эту штуку?

А если не нужно, то почему в деструкторе матриц (см. выше) это делается и всё работает?
Аноним 21/05/17 Вск 16:30:43  994263
>>994262
Он просто стебётся.

Впрочем, можешь выпилить все delete и жить спокойно.
Аноним 21/05/17 Вск 16:32:17  994264
>>994263
:(
Настолько не могу в C, что не понимаю даже шуток про C. Делать-то что?

И чем чревато если я, чисто случайно, действительно решу выпилить все делиты? Потерей памяти при каждом запуске?
Аноним 21/05/17 Вск 16:36:50  994269
>>994258
Мне кажется, тут move asignment оператор по умолчанию включается, поэтому всё сыпется.
Но я не смог чёт его добавить в этом редакторе каличном.
Аноним 21/05/17 Вск 16:38:17  994270
>>994269
Если у тебя явно реализован деструктор, move costructor и move assignment не будут сгенерированы.
Аноним 21/05/17 Вск 16:44:50  994277
>>994251
>Или там есть конкретно, хм, глава?
>>994252
Можно прямо с 18-й начать, в 17-й вода для полных нубов.
Аноним 21/05/17 Вск 16:46:47  994280
>>993446 (OP)
потсоны помогите пжалста! Призываю всех топ программистов 10000килорублей/сек Короч есть 2стула 2 файла .cpp с основным говнокодом(класс + main) и .h заголовочный в котором прописана функция получения текущего времени... Как в .cpp файле в классе получить результат отработки файла-функции с временем?
Аноним 21/05/17 Вск 16:47:50  994281
>>994280
>Как в .cpp файле в классе получить результат отработки файла-функции с временем?
Вызови эту функцию.
Аноним 21/05/17 Вск 16:49:39  994283
e564c2dce468844[...].png (35Кб, 379x337)
>>994277
>18-й начать
Выглядит не совсем так как мне представлялось. Это хоть та книга?

>>994264
Ещё разок обращу внимание на вопрос. И на "что делать", и на второй.
Аноним 21/05/17 Вск 16:49:54  994285
>>994254
Ну ты калич. Зачем с макабы код копируешь?
http://codepad.org/1eK6SvZt
Аноним 21/05/17 Вск 16:51:07  994287
>>994254
>http://codepad.org/7cEMqbmp
Лол. Я же сказал, что макака похерила доступ по индексу в copy(). И скинул скрином >>994206
Аноним 21/05/17 Вск 16:51:50  994288
>>994283
>Выглядит не совсем так как мне представлялось. Это хоть та книга?
Идёшь по ссылке в ОП-посте и качаешь "Программирование. Принципы и практика использования C++"
Аноним 21/05/17 Вск 16:51:57  994289
>>994287
блё. Я подумал что ты про \t
Аноним 21/05/17 Вск 16:52:19  994290
>>994288
действительно
Аноним 21/05/17 Вск 16:54:37  994292
>>994287
всё. Работает. А теперь я пойду и всё же почитаю книжку. Потому, что про деструкторы я вообще ничего не понял (при их выпиле действительно всё налаживалось, но, как я понимаю, терялись те ячейки что эти векторы занимали).

Спасибо
Аноним 21/05/17 Вск 16:54:44  994293
>>994238
1. Делать этого каждый раз не нужно, если есть необходимость записывать данные сразу, делай это после всех необходимых записей, то есть когда необходимые данные будут заполнены, потому что частые вызовы снизят производительность, если ты будешь пихать данные маленькими объемами.
2. Можно проверять, бывает всякое.
3. В стандарте никакой замены ему нету, и, в целом, эта хренотень не поддерживает бинарный формат данных, только текстовый, для сериализации, мягко говоря, годится едва ли, а на самом деле вообще бесполезна чуть менее, чем полностью
4. Все, что позволяют выполнять файловые операции ядра ОС, все это поток и может, так что ответ на твой вопрос - ДА, но только не в случае, если ты открыл файл на append, тогда вся запись будет производиться в конец файла, как бы ты не старался перемещать указатель записи.
5. Нихуя не понял. Ты делаешь ofstream::seekp, чтобы перейти в необходимое место, куда ты будешь записывать (указываешь направление и смещение) и потом проталкиваешь данные в поток. И все, в общем-то.
Аноним 21/05/17 Вск 17:04:44  994300
>>994293
>Нихуя не понял.
Имею в виду, если поток открыт с флагом std::out, то при записи он будет перезаписывать текущие данные файла. В таком случае, чтобы именно вставить, а не перезаписать данные, нужно считать в новый файл до необходимого места, потом вставить новые данные, а потом считать остальное?

И еще вопрос появился: в c++ завезли OpenFileDialog кроме как варианта с MSDN:
https://msdn.microsoft.com/en-us/library/bb776913(v=VS.85).aspx
Аноним 21/05/17 Вск 17:43:27  994320
Псаны, как правильно хранить set ссылок/указателей на объекты?
Аноним 21/05/17 Вск 17:44:55  994321
>>994262
В 111 строке ты создаёшь временный объект, копируешь его и удаляешь память, указатель на которую остаётся в `a`.
Ты будешь наступать на те же грабли всегда, когда ты будешь копировать вектор. Чтобы этого не было, сделай конструктор копирования или конструктор перемещения.

Пока ты их не написал, они дефолтные - копируют значения слово в слово, включая указатели, новую память они не выделяют.

В твоём коде Vector не может копироваться и перемещаться, поэтому писать надо по-другому:
Vector a(n) - тут не создаётся временный объект.

В строке 206 тоже временный объект.
Аноним 21/05/17 Вск 17:48:17  994324
>>994264
>И чем чревато если я, чисто случайно, действительно решу выпилить все делиты? Потерей памяти при каждом запуске?
1) Да.
2) Кроме того, все копии созданного вектора будут использовать один и тот же указатель.
Аноним 21/05/17 Вск 17:49:13  994325
>>994321
>Сделай консруктор копирования

А это разве не он?
Vector(const Vector& vect) {...}
Аноним 21/05/17 Вск 17:53:19  994327
Как называется код который не разделён на интерфейс и реализацию?
Аноним 21/05/17 Вск 17:55:13  994328
>>994324
>>994321

http://codepad.org/XyP1fsQ9

Вроде тут, после того как тот анон исправил мою copy() нет ошибок. И делиты на своих местах. И, вроде, копирующий конструктор есть. А что там с "одним и тем же указателем" или временными объектами?
Аноним 21/05/17 Вск 17:55:31  994329
>>994327
говнокод?
Аноним 21/05/17 Вск 17:58:59  994332
>>994325
Он. Тогда я нихера не понял: ты, вроде, правильно копируешь с выделением второго блока.
Аноним 21/05/17 Вск 18:01:24  994334
>>994328
Не обращай внимание, я просто твой код не читал, просто тыкнул пальцем в небо.
Аноним 21/05/17 Вск 18:05:29  994338
>>994281
а как ее в классе вызвать?
Аноним 21/05/17 Вск 19:04:35  994370
>>994300
Ну если каретка на начале файла, то да, он будет перезаписывать содержимое. Если ты хочешь стереть файл перед открытием, то используй опцию std::ios::trunc или как ее там. Если ты хочешь записывать поверх имеющихся данных, просто перемещаешь указатель записи при помощи seekp и все.
Аноним 21/05/17 Вск 19:53:48  994390
>>994338
https://www.google.com/search?q=c%2B%2B+function+call+syntax
Аноним 21/05/17 Вск 20:49:58  994417
Как дебажить статическую библиотеку? У меня есть приложение, которое использует здоровую либу, и в ней при выполнении срабатывает какое то говно. Как это дело отдебажить? Где ставить точки остановки?
Аноним 21/05/17 Вск 21:21:19  994432
>>994417
Отбой, нашёл.
Аноним 21/05/17 Вск 23:40:08  994505
Двач, я что-то не понял, культя что-ли сама при уничтожении виджета не отсоединяет сигналы от лямбд?
Аноним 22/05/17 Пнд 00:04:33  994513
>>994505
Наркоман чтоли?
Аноним 22/05/17 Пнд 00:29:58  994518
>>994513
ньюфаг штоле
Аноним 22/05/17 Пнд 01:29:29  994545
>>994513
Всё, что я выгуглил это вот: https://wiki.qt.io/New_Signal_Slot_Syntax (раздел Disconnecting in Qt5)
> Only works if you connected with the symmetric call, with function pointers (Or you can also use 0 for wild card) In particular, does not work with static function, functors or lambda functions.

>>994505 кун
Аноним 22/05/17 Пнд 14:06:25  994711
>>994545
Я немножко не понимаю твою проблему. Как ты решил, что соединение не рвётся? Как оно вообще может не рваться, если посылающий объект сдох? Точнее, кто посылает данные, если автор сдох?
Аноним 22/05/17 Пнд 15:33:22  994743
Сап, плюсоводы. Как у вас с работой, удаленной работой, вкатыванием без профильной вышки (есть техническая из лютой шараги) и английским(которого я не знаю)? Есть ли смысл продолжать учить, если туповат (память плохая) или мне с плюсами ничего не светит и лучше не выебываться, а учить фронтенд?
Аноним 22/05/17 Пнд 15:33:47  994744
Вместо одного char используют его массивы из-за того, что он только 8 бит хранить может?
Аноним 22/05/17 Пнд 15:53:45  994747
>>994545
Нихуя не понял вопрос. char'ы используют для паддингов, нарпример, сетевые структуры в linux'е так задефаны. Если ты используешь char для хранения переменной, то, как правило, компилятор будет выделять под него 4 байта, чтобы выравнивать память для быстрой выборки.
Аноним 22/05/17 Пнд 16:05:23  994749
>>994711
Нет, немного не правильно. Сдох объект со слотом, а объект, посылающий сигнал жив. В качестве слота выступала лямбда. Так вот после того, как объект сдох, этот слот всё равно вызывается. Сейчас я накидаю код.
А как решил, что соединение не рвётся? Прога падает
Аноним 22/05/17 Пнд 16:07:14  994751
>>994747
Нихуя не понял. Нахуй ты мне про char'ы рассказываешь
Аноним 22/05/17 Пнд 16:09:54  994753
>>994749
Чтобы отсоединять сигнал при уничтожении объекта, в контексте которого работает лямбда, ты должен передать указатель на контекстный QObject в качестве третьего аргумента, а четвертым - лямбда функцию. И, в общем-то, все дела. Только смотри, чтобы время жизни захваченных объектов лямбда-функцией не истекло до смерти QObject. Короче, что-то вроде такого:

QWidget firstWidget;
QWodget secondWidget;
QObject::connect(&firstWidget, &QWidget::signal, &secondWidget, []() { lambda_call(); });
Аноним 22/05/17 Пнд 16:10:25  994754
>>994744 > >>994747
Аноним 22/05/17 Пнд 16:19:35  994757
>>994747

Я про те случаи, когда в char нужно хранить предложение.

Например, я щас балуюсь, и чар не принимает в себя больше одного символа.
Аноним 22/05/17 Пнд 16:20:13  994758
>>994753
Блядь, действительно. В глаза ебусь, в доке всё написано. Спасибо, анон
Аноним 22/05/17 Пнд 16:21:25  994759
>>994757

Хм, если обьявить просто

char A;

То можешь сунуть туда только 1 символ, а если уже

char A[1];

То можно всунуть туда даже больше чем в мамку опа. я любя
Аноним 22/05/17 Пнд 16:21:41  994760
>>994757
char - это один символ одна буква. Если ты хочешь хранить много букв, но тебе нужен массив букв char'ов
В чём проблема то?
Аноним 22/05/17 Пнд 16:23:51  994761
>>994760

Ну, я не знал немного.
Аноним 22/05/17 Пнд 16:35:20  994765
>>993663
>без формочек и юникода?
>2017
>без юникода
Прими мои соболезнования раз тебе приходится поддерживать легаси.
В ином случае это диагноз.
Аноним 22/05/17 Пнд 16:53:52  994766
Призываю мастера Qt на помощь.
Есть очень странная проблема, в интернете нашёл только одну похожую проблему и то не решили.
Есть на форме textBrowser, в него пихаю текст и ссылки ака окно чата.
Ссылки так - ui->textBrowser->append("<a href="+url+">"+url+"</a>");
Обычный текст вот так - ui->textBrowser->append("me# " + message + "\n");

После открытия ссылки, тобиш после void Chat::on_textBrowser_anchorClicked - весь новый текст, который выводится в textBrowser - становится ссылками с юрл последнего нажатого.

Диплом горит, помогите господа.
Аноним 22/05/17 Пнд 16:54:13  994767
>>994743
bump
Аноним 22/05/17 Пнд 17:59:45  994792
>>994743
На удаленке очень много веб-макак, на крестах заебешься искать работу, притом, что быстро найдется хуеплет, который у тебя уведет ее.
Веб-макакой нати работу проще и ебаться про управление памятью, шаблонами и прочим говном не надо. Стоит лишь обмазаться фреймворками, однако, и в этой области свои особенности есть.

>>994766
Ты весь код покажи, тут борда с вангами или все еще со кольшиками, как-никак.
Аноним 22/05/17 Пнд 18:03:14  994793
>>994792
>> школьниками
блеать!
Аноним 22/05/17 Пнд 18:09:13  994796
>>994792
От кода толку тут мало будет. Потому-что в textBrowser текст отправляется коректно и без ссылок. Сам ебаный textBrowser что-то с текстом делает внутри себя. У него там есть какой-то общий объект для ссылок? И сущность ссылки цепляется к тексту? Я хуй его.

https://pastebin.com/syxkiWNn
Аноним 22/05/17 Пнд 18:11:02  994798
Как в VS компилировать код с минимальным размером кроме настроек пикрил?
Какие директивы компилятора нужно использовать, чтобы переменная в в PE-файле была в секции кода, а не инициализированных констант?
Можно ли встроить/переписать себе функции из WinAPI, чтобы не было привязки ко всяким Kernel32.dll, user32.dll, чтоб можно было просто вытащить секцию с кодом из исходного PE файла и вставить её целиком в другую и не ебаться с подгоном адресов функций, импортом и т.п.?
Аноним 22/05/17 Пнд 18:11:24  994799
Снимок.PNG (38Кб, 829x602)
>>994798
Пикрил, разумеется, забыл
Аноним 22/05/17 Пнд 18:30:08  994803
>>993683
>>993700
Кьют слишком специфичен и своеобразен. Есть ли что-то ориентированное непосредственно на винду?
Я могу прописывать обьявления окон для каждой кнопки, и даже готов писать свой фреймворк, но мне кажется что должно быть что-то несложное для винды типа эмбаркадеровского vcl или дотнетового фреймворка.
Аноним 22/05/17 Пнд 18:31:35  994804
>>994803
Именно поэтому С++ для настолок - полное дно.
Аноним 22/05/17 Пнд 18:33:13  994805
>>994766
Очевидный баг в Qt. Решение:
1) другая версия Qt
2) быстро накатай багрепорт
3) накостыляй какой-нибудь тупое решение типа добавления избыточных </a> в конце каждой ссылки, если это поможет, или ещё что
Аноним 22/05/17 Пнд 18:35:47  994806
>>994798
Слишком много сложных вопросов.
Аноним 22/05/17 Пнд 18:39:40  994809
>>994766
Попробуй пока что в отдельное место выводить текст, потом с него уже загружаться. Заодно проще отладить будет, если что.
Аноним 22/05/17 Пнд 18:43:18  994811
>>994809
> потом с него уже загружаться
Что ты имеешь ввиду?
Аноним 22/05/17 Пнд 18:47:14  994812
>>994796
Хуй его знает, я сейчас чекнул я себя, под 5.8 все работает, или ты на говне мамонта 4.8 сидишь, а?!
Аноним 22/05/17 Пнд 18:49:53  994813
>>994812
4.2.1, не бей, лучше обоссы.
Аноним 22/05/17 Пнд 18:50:54  994814
>>994813
Это даже не легаси, это пиздец. Надо было тогда на Qt3 делать, если в жопу полез без мыла.
Аноним 22/05/17 Пнд 18:51:21  994815
8300e3a8798cd66[...].png (14Кб, 477x252)
>>994812
а нет, обосрался. Кинь прожэкт плс
Аноним 22/05/17 Пнд 18:55:16  994817
>>994815
http://rgho.st/7fBqZY4ml

Виджеты Qt, которые не-QML, должны работать все без проблем, поскольку это дело уже отточено. Другое дело QML, ебал их маму.
Аноним 22/05/17 Пнд 18:58:57  994822
http://ideone.com/cATtjT

Скажите, почему мне всё таки пишет Welcome? Ведь объявление переменной B[2], и B[3] просто не может существовать. Или всё таки может? Если может, то зачем указывать размер массива?
Аноним 22/05/17 Пнд 19:01:01  994823
>>994817
Он у тебя любой текст в ссылку хуячит
Аноним 22/05/17 Пнд 19:05:42  994825
Сап, плюсоводы. Как у вас с работой, удаленной работой, вкатыванием без профильной вышки (есть техническая из лютой шараги) и английским(которого я не знаю)? Есть ли смысл продолжать учить, если туповат (память плохая) или мне с плюсами ничего не светит и лучше не выебываться, а учить фронтенд?
Аноним 22/05/17 Пнд 19:08:17  994826
>>994823
Ну замени на что-то такое, хули ты как дурак https://pastebin.com/8hLuuTKm .
Диплом уже блять на носу, а руки из жопы.
Аноним 22/05/17 Пнд 19:09:35  994828
>>994825
Почему решил кресты учить?
Аноним 22/05/17 Пнд 19:11:12  994831
>>994803
UWM
W
M

Собрал в себе красоту WPF и мощь крестов (а также бонус: CLR сверху и win10 only, торопитесь, предложение ограничено)
Аноним 22/05/17 Пнд 19:14:19  994834
>>994822
-Wall -pedantic для GCC. Олсо, у тебя тут UB из-за того, что в двубайтный массив запихнётся больше двух байт.
Аноним 22/05/17 Пнд 19:14:35  994835
>>994831
Чё это за хрень? Даже гугл не знает.
Аноним 22/05/17 Пнд 19:15:46  994838
>>994834

Ну, по факту он трёхбайтный.
Аноним 22/05/17 Пнд 19:16:48  994840
>>994835
Да я еблан просто
U W P
W
P
https://msdn.microsoft.com/ru-ru/library/bb384843.aspx
Аноним 22/05/17 Пнд 19:17:35  994842
>>994838

Тьфу, не так понял. Думал, ты имеешь ввиду двухбитный.
Аноним 22/05/17 Пнд 19:18:07  994843
>>994828
В универе семестр на них микроконтроллеры программировали, и они мне больше понравились, чем ассемблер.
Аноним 22/05/17 Пнд 19:19:11  994844
>>994840
Опять наебал. Не та ссылка, ту потерял. Ну короче на XAML'е можно ебашить GUI для крестов. Инструкция была на MSDN, но я чё т проебал.
Аноним 22/05/17 Пнд 19:19:42  994845
>>994843
>чем ассемблер
Ну ясен хуй. Представляешь, в мире есть языки намного лучше, чем пропёрженные кресты.
Аноним 22/05/17 Пнд 19:20:14  994846
>>994844
Бля, нашёл. От она
https://docs.microsoft.com/ru-ru/windows/uwp/get-started/create-a-basic-windows-10-app-in-cpp
Аноним 22/05/17 Пнд 19:20:57  994847
Тааак, падажжи ёбана. Это получается, что если я создаю массив M[2], то я могу обращаться к нему как к M[0] и M[1], но не как M[2]? Так, что ли?
Аноним 22/05/17 Пнд 19:22:24  994848
>>994826
Ну баг на месте
Аноним 22/05/17 Пнд 19:24:00  994849
>>994847
Массив с размером два, отсчёт идёт с нуля.
Аноним 22/05/17 Пнд 19:24:15  994850
>>994847
При объявлении массива в скобках ты указываешь размерность. Индексация начинается с нуля.
Аноним 22/05/17 Пнд 19:25:55  994851
giphy[1].gif (1104Кб, 320x240)
>>994849
>>994850
Аноним 22/05/17 Пнд 19:28:19  994852
>>994845
Это то я уже понял. Но сейчас все равно не определился, в какую сторону двигаться. Т.е. понятно, конечно, что вкатиться легче всего через веб, но что-то как-то он совсем уныло выглядит. А по плюсам - читаю сейчас Страуструпа для чайников - и чем больше читаю, тем больше нравится. Я бы и дальше чиал и не замарачивался, но память подводит: буквально пару недель перерыв сделал, и все, открываю книгу где остановился - и нихрена не понимаю, все забылось. Вот и думаю - может нахер эти кресты.
Аноним 22/05/17 Пнд 19:29:06  994853
>>994826
Ну бля, если у тебя бага нет, версии qt одинаковые - то это совсем странно. Бинарники дай что-ли.
Аноним 22/05/17 Пнд 19:33:15  994855
пг.jpg (162Кб, 800x747)
>>994852
>нахер эти кресты.

зарепортил
Аноним 22/05/17 Пнд 19:35:01  994856
>>994852
А ты какую нибудь конкретную задачу себе поставь для обучения.
Аноним 22/05/17 Пнд 19:41:14  994859
>>994856
Даже на ум не приходит, какую задачу можно было бы перед собой поставить: какую не придумаю - оказывается, что решить ее куда быстрее выйдет используя другой ЯП, даже если изучать его придется с нуля.
Аноним 22/05/17 Пнд 19:43:16  994860
>>994859
Что нибудь с ОС сделай
Аноним 22/05/17 Пнд 19:43:40  994861
>>994859
Вся суть крестов.
Аноним 22/05/17 Пнд 21:36:05  994921
Что значит оператор "^" в следующем случае
String^ MergeSections
Аноним 22/05/17 Пнд 21:51:26  994930
>>994921
Это у мелкомягких такое.
https://stackoverflow.com/questions/7530175/auto-foo-ref-new-foo-what-is-ref
Аноним 22/05/17 Пнд 21:53:16  994932
>>994930
Типа хурма для CLR из .net? Потом GC ее подберет или что?
Аноним 22/05/17 Пнд 21:54:39  994935
>>994932
Не знаю, что за хурма, но да, скидывает объект на сборщик мусора.
Аноним 22/05/17 Пнд 22:06:13  994943
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;


int main(){
ifstream f1;
int key;
cin>>key;
char bf;
if(key>0) f1.open("1.txt");
else f1.open("2.txt");
vector<char> vch;
system("cls");
for(int l=1;!f1.eof(); l++){
f1.get(bf);
char ii;
ii=bf+key+key*l;
vch.push_back(ii);
}
f1.close();
ofstream f2;
f2.open("2.txt");
for(int y=0; y<vch.size()-1; y++){
f2<<vch[y];
}
f2.close();
return 0;
}


Проблема - шифруется прекрасно, но при дешифровке(когда ввожу ключ меньше нуля) происходит внезапный выход из цикла, файл перестает читаться, хотя байты в нем еще есть. Какой-то байт зашифровался в байт, обзначающий конец файла? Что за хуйня? Памагити
Аноним 22/05/17 Пнд 22:07:04  994944
>>994943
#include <iostream>
#include <vector>
#include <fstream>

using namespace std;


int main(){
ifstream f1;
int key;
cin>>key;
char bf;
if(key>0) f1.open("1.txt");
else f1.open("2.txt");
vector<char> vch;
system("cls");
for(int l=1;!f1.eof(); l++){
f1.get(bf);
char ii;
ii=bf+key+key*l;
vch.push_back(ii);
}
f1.close();
ofstream f2;
f2.open("2.txt");
for(int y=0; y<vch.size()-1; y++){
f2<<vch[y];
}
f2.close();
return 0;
}
Проебался
Аноним 22/05/17 Пнд 22:58:21  994997
>>994859
Суть крестов. Так тебе нужно учить кресты или нет? Если надо - зачем ноешь?
Аноним 22/05/17 Пнд 23:06:45  995002
>>994944
Лень читать. Пройди по коду и обрати внимание на каждое место, в котором у тебя имеет значение знак, в котором знаковое значение присваивается беззнаковой переменной и т.д.

Олсо, ideone.com
Аноним 22/05/17 Пнд 23:25:50  995016
>>994766
> Диплом горит, помогите господа.
Что за диплом ты делаешь?
Очередной чат?
Аноним 22/05/17 Пнд 23:52:35  995036
>>995016
Он самый, но с прямым подключением, шифрованием, ДХТ и ещё парой плюшек. Делаю то, чем сам буду пользоваться после написания. И в рот пусть ебутся все телеграмы и прочее.
Аноним 22/05/17 Пнд 23:54:32  995037
>>995036
Зачем тебе для всего этого кресты?
мимокрокодил
Аноним 22/05/17 Пнд 23:55:48  995038
>>995037
Потому-что я угорел по qt, отличная штука. Хочу научится в нём кодить ака боженька.
Аноним 22/05/17 Пнд 23:57:57  995041
>>995036
Самому себе будешь писать сообщения?
Аноним 22/05/17 Пнд 23:59:15  995042
>>995041
Подколол так подколол.
Аноним 23/05/17 Втр 00:40:02  995054
>>995042
Так это была такая шютка? Хих.
Аноним 23/05/17 Втр 01:03:49  995062
>>994766
Костылями решил проблему. Теперь обычные строки буду писать - ui->textBrowser->append("<span>me# " + message + "</span>\n");
Аноним 23/05/17 Втр 13:49:59  995169
Можно ли при помощи std скопировать каждый N-ый элемент вектора?
Аноним 23/05/17 Втр 14:30:28  995189
>>995169
Готовых способов нет. Вот пример с помощью copy_if и лямбды.
Аноним 23/05/17 Втр 14:30:45  995190
>>995169
https://stackoverflow.com/questions/30817563/copy-every-other-element-using-standard-algorithms-downsampling
Аноним 23/05/17 Втр 19:22:37  995298
7336564877.jpg (76Кб, 572x575)
Почему крашится на некоторых файлах?
Аноним 23/05/17 Втр 20:04:56  995313
>>995298
После удаления нужно прерывать итерацию. Итераторы, которые в for-each цикле использовались, становятся мусором.
Аноним 23/05/17 Втр 20:08:58  995315
>>995298
Смотри пример использования erase
http://en.cppreference.com/w/cpp/container/map/erase
Аноним 23/05/17 Втр 20:23:35  995320
>>995313
>>995315
Я недавно учить начал, поэтому не совсем понимаю. Я же удаляю элемент в самом конце итерации, т.е. это ни на что влиять не должно, разве нет? Почему на многих файлах оно работает вполне корректно?
Аноним 23/05/17 Втр 20:24:18  995321
>>995315
В любом случае, спасибо за инфу.
Аноним 23/05/17 Втр 20:34:53  995330
>>995320
У тебя с максимальным значением несколько ключей может быть. Первый ты удалишь, а вот дальше не понятно, что происходит.
Аноним 23/05/17 Втр 20:54:11  995336
7336564877.jpg (46Кб, 575x539)
>>995330
Ну как-то же оно удаляет несколько ключей с максимальным значением перед тем, как крашнуться. Если в указателе рандомный мусор - то не понятно, как оно работает до момента краша.
Аноним 23/05/17 Втр 20:55:12  995338
>>995336
В этом вся суть. Оно работает до какой-то магической черты, а потом падает.
Аноним 23/05/17 Втр 20:55:47  995339
>>995336
Просто воспользуйся способом в статье - и всё будет робить.
Аноним 23/05/17 Втр 21:09:48  995345
>>995339
Что-то оно ни с
p = words.erase(p.first);
ни с
p = words.erase(p);
вообще не компилится
Аноним 23/05/17 Втр 21:11:06  995346
>>995345
Тебе ясно написали: воспользуйся способом в статье.
R u retarded?
Аноним 23/05/17 Втр 21:12:52  995347
>>995346
Я не хочу через сишное условие for делать.
Аноним 23/05/17 Втр 21:13:35  995349
>>995347
So you are.
Аноним 23/05/17 Втр 21:51:06  995373
Почему майкрософтовый cmake думает что у него тулчейн версии 150, а на деле 141? А потом он еще и говорит, что библиотек буста нет.
Что не так с этими майкрософтами?
Аноним 23/05/17 Втр 22:35:06  995397
>>995373
Спермопроблемники — в /s/
Аноним 23/05/17 Втр 22:54:34  995417
BattleAngelAlita.jpg (72Кб, 1000x563)
Скоро меня пригласят в геймдев-фирму на собеседование. К чему следует подготовиться?
Аноним 23/05/17 Втр 23:04:20  995420
>>995417
> К чему следует подготовиться?
Что тебе под ноги полотенце кинут.
Аноним 24/05/17 Срд 00:13:45  995467
>>995417
к работе забесплатно
Аноним 24/05/17 Срд 16:55:12  995746
Ухбля, гуру местные, подскажите что-нибудь из чтива, гайдов и любого дерьма, которое помогут разобраться с билдером чёртовым. Вообще интересует оче подробно расписанные гайды ибо сильно туплю при виде всех этих его графический инструментов.
Ещё хотелось бы, узнать про создания на нём простых изображений.
С меня нихуякак обычно
Аноним 24/05/17 Срд 17:22:37  995755
>>995746
Какой это тебе нахуй билдер. Борланд что ли или как их там. Он же уебищный.
Если ты нубас, выкачай QtCreator, будет гораздо проще, чем вот в этой хуйне.
Аноним 24/05/17 Срд 17:27:20  995756
>>995755
Я бы это дерьмо даже не трогал, но вот препода моего это не колышет.
Аноним 24/05/17 Срд 17:49:32  995766
Юзаю CodeBlocks, все правильно делаю?
Аноним 24/05/17 Срд 21:53:12  995920
>>995345
Давай я загугля за тебя, скотыняка.
http://www.cplusplus.com/reference/map/map/erase/
Что возвращает erase? А ты, сука, что делаешь?
У типичного вопроса на собеседовании "нахуй нужен erase" - ты соснул. Поздравляю, ты даже не интерн, учитывая что тебе сказали, где ошибка.
Аноним 24/05/17 Срд 22:36:53  995933
Анон, поясни мне такую вещь.
Я юзаю qt creator (только как иде). Там своя система сборки и свои файлы для проектов.
Вот, например, я хочу исходники своего поделия выложить для всех.
Как быть юзерам которые юзают другие иде и другие системы сборки?
Ведь им придётся менять пути к либам на свои постоянно?
А если юзается какая-то специфичная версия библиотеки?
Аноним 24/05/17 Срд 22:46:54  995940
>>995933
https://stackoverflow.com/questions/39705210/c-how-to-manage-dependencies-use-libraries-from-github-for-example
Аноним 25/05/17 Чтв 01:32:35  996013
Как так получается что мы используем конструктор шаблонного класса std::thread без передачи значений в сам шаблон? Я не понимаю...
Аноним 25/05/17 Чтв 02:05:58  996022
шо?.png (9Кб, 277x268)
>>996013
> шаблонного класса std::thread
Аноним 25/05/17 Чтв 02:46:47  996028
Мейлач. рассказывали, что можно написать многопользовательскоеприложение без тредов и форков. Это правда?
Под многопользовательским подразумевается, что я могу запустить два пользователя и они будут работать параллельно, не мешая друг другу, но с возможностью изменять их общие данные.
Аноним 25/05/17 Чтв 03:07:07  996029
>>996028
Мейлач?
Аноним 25/05/17 Чтв 04:50:10  996042
>>996028
>но с возможностью изменять их общие данные.
Алан Бьюли, «Изучаем SQL».
Старательно изучаем!!!
Аноним 25/05/17 Чтв 13:11:21  996139
>>996029
С разморозкой. https://2ch.hk/abu/res/52038.html
>>996028
Разумеется, это возможно. Представь себе, что ты читаешь данные из stdin и используешь их, но только данные могут прилетать не из одной консоли, а из нескольких. Если в случае с одной косолью у тебя была одна структура на всю программу, то во втором случае у тебя будет массив структур для всех пользователей.

Аноним 25/05/17 Чтв 15:34:07  996195
>>996028
Хрен знает, про что тебе рассказывали. Про корутины, select/poll?
Аноним 25/05/17 Чтв 16:00:05  996206
>>996028
https://ru.wikipedia.org/wiki/Цикл_событий

Одна из возможных реализаций такого приложения.
Аноним 25/05/17 Чтв 16:06:25  996208
Ананасы, хочу, чтобы мой QWidget, помещённый в layout, был квадратным. Как это можно реализовать. Нагуглить не могу.
Аноним 25/05/17 Чтв 16:12:45  996212
>>993446 (OP)
Где можно почитать сжато про распределители памяти(allocator<T> вот это все).
Аноним 25/05/17 Чтв 16:37:26  996219
>>996212
Гуглил уже?
Аноним 25/05/17 Чтв 16:51:26  996227
Нужна небольшая помощь в реализации класса ассоциативного массива. Он должен организовывать данные как бинарное дерево поиска, содержать операции вставки элемента, удаления элемента, поиска по ключу
Много гуглил и ничего конкретного не нашел, некоторые предлагают в качестве примера брать реализацию красно-черного дерева, но там тоже не особо всё ясно
Вот это наиболее близкий вариант, как мне кажется https://www.codeproject.com/Articles/149879/Associative-Array-in-C
Аноним 25/05/17 Чтв 17:16:56  996248
>>996227
Что тебе не понятно?
Аноним 25/05/17 Чтв 21:34:59  996356
>>996248
насколько эта реализация соответствует моему заданию
Аноним 25/05/17 Чтв 22:09:12  996369
>>996356
Это вариант на массиве. Тут деревом поиска даже не пахнет.
Аноним 25/05/17 Чтв 22:09:29  996370
Полистал я вашу шапку, решил Qt Creator поставить. При попытке создать простое консольное приложение пишет, что нет подходящих комплектов. Хотя MinGW стоит и в настройка дефолтного комплекта прописан. Я даже вручную через него скомпилировал минимальный код. А ide почему-то не может.
Я не могу нагуглить как решить эту проблему. Всё что я нашёл, всё сводиться к предложению загрузить Qt полностью.
Аноним 25/05/17 Чтв 22:11:51  996372
>>996370
Не стоит эту IDE использовать для чего-то, кроме Qt. Она хуже любой другой распространённой.
Аноним 25/05/17 Чтв 23:26:10  996404
>>996372
Хорошо, понял, спасибо.

Вот я в ужасе от этого, горит просто от крестов. Точнее как, сам язык мне очень нравиться, удобно с указателями всё, нет непонятных ограничений и прочего. Я с делфи начинал. Качаешь любую версию, качаешь любой пример, хоть десятилетней давности, запускаешь - и он сходу, сука, компилируется. А в с++ сколько не вкатывался в визуал студию - постоянно компиляторопроблемы. Загружаю пример, загружаю специально версию визуал студии под него (то есть уже даже не пример под версию, а версию под пример), открываю, а там 53 ошибки среди директив компилятора в каких-то *.h, которые в самой среде, вне примера. Я не знаю уже, говорят, мол с++ сложный, да пошли они к чёрту, там компиляторы сложнее языка в десять раз. Эклипс сейчас тоже вот ошибку выдаёт при попытке запустить хоть что-то.

Может быть есть что-то типа pelles c, только для с++? Где компилятор вместе с ide весят 10 мб, и где можно нажать создать проект, запустить проект, и он запуститься сразу?

Аноним 25/05/17 Чтв 23:29:51  996406
>>996370
Короче, делаешь так: New Project -> Non-Qt Project -> Plain C++ app. Там выбираешь систему сборки Qbs. Сразу создастся обычный консольный Hello world и он будет нормально компилироваться.

Аноним 25/05/17 Чтв 23:36:11  996409
>>996406
Тоже так думал, пока не разобрался с ней более-менее. Единственное пока с чем не разобрался, как в ней пользоваться дебаггером, сколько пробовал нихера не получается.
Аноним 25/05/17 Чтв 23:47:22  996414
>>996409
Во, благодарю от все души. А я то почему-то упорно пытался комплект настроить, гуглил значения полей и что в них должно быть.
>как в ней пользоваться дебаггером
Да пошёл он к чёрту, этот дебаггер. Я уже даже консолькой через батник и gcc готов собирать. Восемь часов пытаюсь этот мусор запустить. Я из армии только пришёл, идей куча накопилась, радовался, думаю, свободное время, сейчас поставлю какой-нибудь новый компилятор (сейчас же всплывают в разных областях такие новые проекты с открытыми исходниками), альтернативу визуал студии, где можно 100% времени уделить коду, а не только 60%. А то не сидеть же на своём умирающем делфи, да тормозном питоне. А тут вот. Ещё раз спасибо, прям настроение исправил.
Аноним 25/05/17 Чтв 23:55:02  996417
>>996414
Не за что. Кстати, сразу на будущее скажу, что по дефолту последние стандарты не включены. Чтобы включить с++14 нужно в qbs файле проекта написать cpp.cxxLanguageVersion: "c++14". Также если хочешь запускать отдельный экзешник без дополнительных библиотек, то нужно там же прописать cpp.linkerFlags: "-static"
Аноним 26/05/17 Птн 00:19:13  996427
ПЛАТИНОВЫЙ вопрос, но все же
Что по идеи должен уметь джун? или хотя бы стажер или я настолько нулячий, что никуда вообще не возьмут :с
Аноним 26/05/17 Птн 00:29:13  996428
>>996427
Гуглить.
Аноним 26/05/17 Птн 01:11:00  996433
Сап, анон. Пишет тебе крестовик-наверное-джун-наглости-на-мидла, работающий в унылом госучреждении и параллельно ебу труп науки в универе. Наткнулся на вакаху мечты - https://streamhpc.com/job/openclcuda-expert/. Собственно, занимаюсь я примерно тем, чем занимается эта контора - пишу код в соответствии с требованиями инженеров и физиков и параллелю на видеокарте, ну и ещё всякой хуйней по мелочи, но это неважно. Думаю попробовать прибиться к ним, но смущает пункт про то, что требуется опыт работы с архитектурами в количестве больше двух. Какие архитектуры имеются ввиду? Разные видеокарты? Плисы, ардуины и проч? RISC, CISC? Может быть, вопрос звучит глупо, но я дальше обычного комплюхтера с его цп и видеокартой не лез. Более того, я на самом деле хуёво разбираюсь в архитектуре э-вэ-эм, потому как в основном занимался алгоритмами, матаном, высокоуровневыми задачами, а по диплому вообще физик-теоретик, но думаю, смогу быстро подтянуть, если таки решусь к ним постучаться. Стоит ли вообще позориться перед белыми людьми с таким уровнем знаний?
Аноним 26/05/17 Птн 01:35:23  996436
>>996433
Или тут вообще имеется в виду архитектура кода и я идиот, лел.
Аноним 26/05/17 Птн 03:42:17  996446
>>996417
>то нужно там же прописать cpp.linkerFlags: "-static"
Не помогает. Ексешник пустой программы начинает весить 2 мб, а при запуске жалуется на отсутствие "libgcc_s_dw2-1.dll".
Аноним 26/05/17 Птн 08:50:48  996469
>>996433
>ON 5 MAY 2015
ну да, спустя 2 года, вакансия, без сомнений, еще актуальна)
Аноним 26/05/17 Птн 10:25:05  996485
>>996469
Думаю, это тот случай, когда набор идет постоянно, но не спеша, и с каждым кандидатом все обсуждается отдельно. Тем более что сайт они обновляют.
Аноним 26/05/17 Птн 13:23:19  996539
>>996446
Хм, хуй знает, если честно. У меня все нормально. Посмотри в папке bin компилятора этот файл. Или скачай чистый mingw с офсайта и им пользуйся, но только юзай Qbs вместо qmake.
Аноним 26/05/17 Птн 14:06:28  996576
>>996539
Вот я тоже. Сейчас поставил netbeams, требует то ли mingw, то ли cywgin, нечто make и другой мусор. Ставлю всё прям по инструкции ещё раз отдельно для него, а оно пишет, что всё-равно не хватает некоторой dll непонятно для чего. Поставил kdevelop, поставил geany, поставил CodeLite и всё одно и то же. Как люди вообще используют этот мусор - не представляю, самим то приятно с этим разбираться? Просто невообразимо выбешивает это, не передать словами. Почему вот по пунктам с офф-сайта скачиваю всё необходимое, а оно не работает, неужто так сложно поподробнее написать.
Всё что необходимо, просто минимальную ide, текстовый редактор с поддержкой нескольких файлов и выделением ключевых слов в которой кнопки компилировать и запустить работают. Как pelles c на 10 мб (где даже отладчик есть, между прочим) - побаловаться-вкатиться в новые стандарты, ничего такого серьёзного не требуется. А тут скачай то, скачай пять утилит для компиляции, линковки, пропиши им все конфиги и получи непонятно что. Сейчас удалил вообще всё что стояло, пойду по второму кругу. Я уже даже почти готов громадную визуал студию поставить.
Аноним 26/05/17 Птн 14:09:12  996580
>>996576
Чем тебя вижел студия не устраивает? Бесплатная, охуенный жырный инталлятор со всем на свете, огромный мсдн и не менее огромный стэковерфлоу. Притом, что большая часть энетрпрайза и геймдева как раз на студии, так что если учить, то ее.
Аноним 26/05/17 Птн 14:32:06  996596
asdasdqweqwads.png (121Кб, 1354x670)
>>996580
> охуенный жырный инталлятор со всем на свете
Вот именно этим. Последний раз когда я её ставил, там она гигабайта четыре и я уже офигел от жизни. Какой-то пусть даже навороченный текстовый редактор запускается две минуты и компилирует с такой же скоростью. А то что сейчас я вообще боюсь представить сколько времени будет запускаться и как работать. Просто галочка для мобильных телефонов добавляет 10 Гб, может быть так принято сейчас, но я не вижу причин, куда там столько всего. Я в армии прям с андроида непонятно чем создавал apk за неимением лучших вариантов. Так соответствующее приложение занимает 27 мб. То есть фактически 27 мб достаточно для создание приложений под андроид (и даже если он использует что-то из самого себя, полный образ андроида 300 мб где-то). Хрен с ним, там ещё поддержка айфона и прочего, но не 10 же Гб?
>А в с++ сколько не вкатывался в визуал студию - постоянно компиляторопроблемы. Загружаю пример, загружаю специально версию визуал студии под него (то есть уже даже не пример под версию, а версию под пример), открываю, а там 53 ошибки среди директив компилятора в каких-то *.h, которые в самой среде, вне примера.
Аноним 26/05/17 Птн 14:45:12  996600
>>996596
Ну, во-первых, там допгалочки есть для охочих до места, тут просто ставит наверняка всё. Скоре всего сразу хуюнити и воображаемый паровоз.
По-хорошему тебе наверное надо только шиндовс сдк и кресты а остальное доставлять по мере надобности.
А че за ошибки у тебя с хедерами?
Может ты тупо копипастил файлы проекта в инклюд и сорс, не указав их как пути инклюда и сорса? Это самое очевидное, системные либы студия уже сама пишет, если ты их ставил.
Давай конкретику, все равно тред полудохлый.
Аноним 26/05/17 Птн 14:50:21  996602
>>996596
>Просто галочка для мобильных телефонов добавляет 10 Гб
Там кроме сдк для разных систем ещё 9гб мусора в виде десятка симуляторов разных версий систем для разных устройств, юнити и прочих.

Что сдк иос, что офф. сдк андроида в полном составе весят по 4-6 гб.
Аноним 26/05/17 Птн 14:54:30  996605
Я знаю питон, Go. Думаю начал писать на спп. С чего мне начать?
Аноним 26/05/17 Птн 15:12:31  996617
>>996576
Для твоих целей идеально подходит CodeBlocks. Только качай сразу с компилятором в комплекте. В ней все очень просто, даже настраивать ничего не надо, и даже может компилировать отдельные cpp файлы, а не только проекты, как студия, qtcreator и т.д. И сразу по дефолту включена статическая линковка, т.е. все компилируется без зависимостей от dll. Я вначале ее использовал, сейчас, правда, перешел на qtcreator. Хотя иногда и сейчас использую ее для дебаггера и компиляции статической библиотеки, т.к. пока не разобрался, как это сделать в qt.
Аноним 26/05/17 Птн 16:57:18  996656
Пишу приложение, работающее с sqlite. Мне нужно хранить в БД дату поступления на работу и иметь в классе поле для хранения этой даты. В каком формате хранить дату в классе?
Аноним 26/05/17 Птн 17:07:05  996660
asdasdsadaas.PNG (71Кб, 1152x1021)
>>996600
>Давай конкретику, все равно тред полудохлый.
Хорошо. Я поставил визуалстудию таки. Без совсем лишних галок примерно 4 Гб, хрен с ним.
Запускаю, кликаю создать простую консольную программу. Нажимаю запустить, и оно выдаёт ошибку, не найден sdk версии 8.1. По клику изменить целевую платформу можно переключать win32 и win64, обе не работают. Если прописать в настройках версию 7 тоже не работает. Зачем мне этот sdk? В тех четырёх гб я тогда что скачал, если нельзя пустую программу скомпилировать? Я не собираюсь использовать возможности win8.1, даже возможности win7 не буду использовать, максимум создам окно, подключу древний opengl и буду обрабатывать нажатия мышки/клавы. Функции ос, которые, наверное, со времён win2000 не менялись.
>>996617
>CodeBlocks
Идеально, есть даже версия не требующая установки, можно с собой таскать.
Аноним 26/05/17 Птн 17:29:59  996663
>>996576
>>996580
Студия как я понимаю сейчас работает на .NET, а использование Java/C# для разработки графических приложений известно к чему приводит.
На C++ написаны только QtCreator и CodeBlocks.
Аноним 26/05/17 Птн 18:08:58  996667
>>996605
С хеллоуворлда.

>>996660
Ты пишешь
>Нажимаю запустить, и оно выдаёт ошибку, не найден sdk версии 8.1.
Но почему-то потом ты пишешь
>По клику изменить целевую платформу можно переключать win32 и win64, обе не работают. Если прописать в настройках версию 7 тоже не работает.
Ставь шиндовс сдк раз хочешь под шинду девелопить.
Покажи дерево проекта, кстати, если ты создавал Empty Project оно не должно хотеть сдк и должно собираться само.
И поменяй язык, только уёбки кодят на русском.
>>996663
На плюсах можно самостоятельно на винапи хуярить, просто толковых готовых либов нет, проще самому нахерачить под ту утилитку что пишешь, либо стырить готовую большую либу.
Аноним 26/05/17 Птн 18:40:05  996677
14118044249430.png (175Кб, 500x480)
>>996580
>большая часть энетрпрайза и геймдева как раз на студии, так что если учить, то ее

> учить IDE
Аноним 26/05/17 Птн 18:42:33  996678
>>996677
Ну да. Это не борланд си, тут надо хоть пару раз ошпариться с настройками проекта, директивы препроцессора позыркать и подключать проекты в солюшен.
Ты хочешь сказать, что это ОЧЕВИДНО и ПОНЯТНО без изучения?
Аноним 26/05/17 Птн 18:51:20  996680
>>996427
Бумага ответу
Аноним 26/05/17 Птн 18:57:43  996683
>>996678
Систему сборки настрой, маня. Нормальные люди уже давно перешли на внешние генераторы проектов (GYP, CMake и прочее говно), а не привязываются к какой-то конкретной IDE.
Visual Studio нужна, чтобы на нее накрутить Visual Assist X или решарпер и послать нахуй интеллисенс, который окромя полутора подсказок для крестов выдать нихуя не может.
Директивы препроцессора нужны, если ты особо упорот и уж очень хочешь себе натвикать хуйни, как какой-то аудиофил, в большинстве случаев, даже в нагруженных приложения, на многие директивы, за исключением директив на добавление служебной информации и оптимизации компилятора насрать абсолютно, потому что прирост производительности от них нулевой, если даже не отрицательный.
Алсо, скажу тебе, про охуительное чувство, когда заголовочники и сорцы расположены в одной куче, но в проекте они по отдельным папочкам, и попробуй блять в репе найди что тебе нужно из этого дерьма.
Кстати, вот еще одна просто охуительная штука, MSVS сохраняет файлы в ЛОКАЛЬНОЙ КОДИРОВКЕ, готовься, что твои cp-1251 encoded файлы будут пестрить кривыми комментариями в любом более-менее адекватном вьювере репозиториев.

>>996660
>> Идеально, есть даже версия не требующая установки, можно с собой таскать.
Говно ебаное, даже не пытайся пользоваться этим легаси чмом. IDE, которая не может выводить типы для auto и делать нормальные пометки об ошибках нужна была лет 17 назад (если ты не говнокодер ЦЭ99, подавайте мне бинды сюда, ко-ко-ко, нужно следить за легаси, стандарты вносят слишком много изменений, register выкинули, да как они смеют). Единственный плюс этого корыта в том, что парсит заголовочные файлы в поисках объявлений он достаточно быстро (ну а хули нет-то, если он ничего другого делать не умеет).
Тут, наверно, будут советовать CodeLite и прочий мусор, который весит по питнадцоть мегобайт. Ты знаешь, что такое море крови ты наверное не купался в этом дерьме ты искупаешься тебе мало не покажется (цитаты Великих Людей)

>>996656
В timestamp переводи и храни как число. Благо 64-битная метка времени позволяет нам хранить наши говноподелки до времен терминаторов или может быть даже больше...
Аноним 26/05/17 Птн 18:58:48  996684
>>996433
Бумп штоле
Аноним 26/05/17 Птн 19:02:20  996685
>>996683
>Алсо, скажу тебе, про охуительное чувство, когда заголовочники и сорцы расположены в одной куче, но в проекте они по отдельным папочкам, и попробуй блять в репе найди что тебе нужно из этого дерьма.
В чем проблема? Я сам их по папочкам раскладываю, но нередко дерьмо когда они на полу. Райтклик - открыть в эксплорере. В студию гит уже впендюрен, так что и коммитить можно из него.
>>996683
>Кстати, вот еще одна просто охуительная штука, MSVS сохраняет файлы в ЛОКАЛЬНОЙ КОДИРОВКЕ, готовься, что твои cp-1251 encoded файлы будут пестрить кривыми комментариями в любом более-менее адекватном вьювере репозиториев.
Это пичот, но у меня юникод. А на работе постоянно сталкивался с этой ебаниной.
Аноним 26/05/17 Птн 19:10:12  996687
>>996685
>> В чем проблема? Я сам их по папочкам раскладываю, но нередко дерьмо когда они на полу. Райтклик - открыть в эксплорере. В студию гит уже впендюрен, так что и коммитить можно из него.
Ну проще, конечно же, когда можно не прибегая к посторонним инструментам, сделать все как надо. Тысячи окон уже осточертели.
Но соль в том, что даже при использовании двух IDE одновременно (открываю CLion и MSVS), я не могу получить адекватного редактирования кода (CLion в этом преуспел, зато автокомплит работает криво и куча раздражающих косяков, да и вообще пиздец бывает зачастую в большом проекте, но сейчас как-то этого поубавилось) вместе с хорошей производительностью и нормальной отладкой (отладка в студии хорошо, хотя были случаи, когда отладчик загибался и не хотел читать память, приходилось перезапускать всю студию, а студию с решарпером быстрой назвать язык не поворачивается). Короче, на двух стульях блять, как меня это доебало, если честно...

Аноним 26/05/17 Птн 19:18:31  996690
>>996687
Студия за эти годы создала впечатление наиболее полноценного и качественного продукта.
Экскод падал по три раза на дню, кодоблоки и прочие уже не такие полноценные.
ВС Код показался хорошей быстрой легковесной альтернативой если пришьёшь к ней компилятор.
Аноним 26/05/17 Птн 19:25:53  996692
>>996690
В целом, соглашусь с тобой. Я бы сейчас даже на CLion полностью перелез, дак он кривой падла (но гораздо лучше, чем пару лет назад, когда первые версии выходили)
Аноним 26/05/17 Птн 19:35:45  996694
14118044249430.png (175Кб, 500x480)
>>996683
>Кстати, вот еще одна просто охуительная штука, MSVS сохраняет файлы в ЛОКАЛЬНОЙ КОДИРОВКЕ, готовься, что твои cp-1251 encoded файлы будут пестрить кривыми комментариями в любом более-менее адекватном вьювере репозиториев.

> комментарии на русском
Аноним 26/05/17 Птн 19:41:33  996695
>>996690
>ВС Код
Не думаю что десктопные приложения на яваскрипте могут быть легковесными.
Аноним 26/05/17 Птн 19:43:19  996696
>>996694
ИМХО лучше на русском, чем на кривом англицком. Видал я комменты, от которых ржать хотелось. Пускай человек выражается правильно, а не будет ограничен знаниями неродного языка. Комменты на том языке, который человек знает хорошо более выразительны, и должны объяснять сжато и в то же время точно принцип работы того или иного метода/куска кода.
Алсо в принудительных английских комментариях смысла не особо много, если вся контора располагается в одной стране без зарубежных участников. Может, в коей-то мере, это и интересно, но больше будет походить на какой-то Брайтон-Бич, где все разговаривают на рунглише.
Аноним 26/05/17 Птн 19:45:46  996697
>>996695
Однако ж.
Я, конечно, его сравниваю с родным братухой атомом, платным саблаймом и добротным нп++.
Щас немного попробовал вим и мне кажется, что тут что-то есть. Но пока нет времени навернуть (говорят емакс пижже). В коде плюгины одной кнопкой ставятся, тот же пуфон дебажить одно удовольствие.

>>996696
Толковый кодер комментариев не пишет, ибо что написано с трудом должно читаться с трудом.
А кроме шуток - надо ангельский тянуть хотя бы в предметной области, а то напишешь контроллер панелей как painController и прочие перлы и комменты даже на русском не спасут.
Аноним 26/05/17 Птн 19:51:43  996701
>>996697
Интерфейсы следует документировать, реализацию можно избавить от этого, в принципе. Если архитектура документируется, то от комментирования можно отказаться, да. Самодокументируемый код, это, конечно же, хорошо, но никто не подскажет без соответствующих подсказок, является ли метод блокирующим или нет, как он вызывается и чем отличается от подобного метода с интересным суффиксом.
Английский нужно знать, не спорю, чтобы потом несуразиц не было, да и документация на те же API требует хотя бы средненьких знаний.
Аноним 26/05/17 Птн 19:54:08  996703
pepe sad.jpg (17Кб, 600x384)
>>996701
Ну хули, всё правильно сказал. Мы все знаем, как делать правильно, только реальность оказывается проворнее.
Аноним 26/05/17 Птн 20:03:56  996709
>>996683
>Говно ебаное, даже не пытайся пользоваться этим легаси чмом.
> IDE, которая не может выводить типы для auto
Я пока даже не знаю что это, я с++11 только издали видел.
>>996687
>Короче, на двух стульях блять, как меня это доебало, если честно...
А на люниксах есть решение, раз уж ты всё ругаешь? Мне то для себя, могу свободно обперекатываться.

Аноним 26/05/17 Птн 22:20:24  996781
написал односвязный список, хранящий статические данные - строчки
почему то функции стандартных библиотек tolower toupper
не работают, поэтому не могу реализовать статический метод, который меняет регистр этих строк, программа нормально компилируется и всё работает, все условия проходят, но строчки не меняются, не могу понять почему, помогите плиз
https://pastebin.com/dwxgvqea
Аноним 26/05/17 Птн 22:47:04  996788
>>996781
Эти статические данные у тебя часом не строковые литералы?
Аноним 26/05/17 Птн 23:03:03  996791
>>996781
Во1 нужно явно присваивать: с = tolower(c)
Во2 условия неправильные: нужно >=a && <=z
Аноним 26/05/17 Птн 23:03:25  996792
>>996446
Кутэкреактор отличился этим - хуй ты запустишь скомпилрованный файл без деплоя на винде.

Чтобы всё всегда запускалось, надо добавить в PATH все пути к динамическим библиотекам, которые ты используешь, в том числе путь к папке bin компилятора.
Аноним 26/05/17 Птн 23:05:52  996794
>>996576
Как пользоваться codelite:
- ставишь codelite
- ставишь MinGW
- в настройках указываешь путь к папке MinGW
- добавляешь путь к папке bin в PATH (охренеть, там такая же проблема, как в креакторе)

Всё, оно робит. В линуксе ьаких проблем нет, там все либы в заранее определённых местах.
Аноним 26/05/17 Птн 23:20:10  996808
>>996788
ну да, а что?

>>996791
да, про присвоение я тупо забыл, спасибо
Аноним 26/05/17 Птн 23:39:57  996830
пытаюсь реализовать на плюсах простую сортировку пузырьком для элементов односвязного списка, которые хранят в себе строковые литералы (типо чтобы по алфавиту сортировало)
https://pastebin.com/2xPXQkMK
чет вроде должно работать, но не пашет
анонче, нужна твоя помощь
Аноним 27/05/17 Суб 01:31:25  996876
download.png (5Кб, 214x131)
>>996697
>А кроме шуток - надо ангельский тянуть хотя бы в предметной области, а то напишешь контроллер панелей как painController и прочие перлы и комменты даже на русском не спасут.
https://wandbox.org/permlink/747TNFxKBVkr9LN4
Аноним 27/05/17 Суб 01:36:35  996880
>>996876
Ну и нахера ты это показываешь?
Ты еще пропиши
#define int целое
#define { начало
и пиши на 1с.
Аноним 27/05/17 Суб 01:38:18  996881
download (1).png (6Кб, 212x127)
>>996880
https://wandbox.org/permlink/s7W2X3nng1rUktr3
Аноним 27/05/17 Суб 01:40:56  996883
14936037877460.gif (3993Кб, 420x310)
>>996881
Мсье знает толк в извращениях.
Аноним 27/05/17 Суб 01:42:06  996885
>>996883
Это #импортозамещение
Аноним 27/05/17 Суб 01:52:31  996887
>>993446 (OP)
Занимаюсь некой хуйнёй.
Есть класс float3, имеющий float v[3];
Есть класс Vec, имеющий float x, y, z;
Возможно ли перегрузить оператор присваивания, чтобы эти 2 типа можно было друг другу присваивать?
Аноним 27/05/17 Суб 01:52:40  996888
>>996885
класс КонтроллерПанелей
Начало
общее:
Панель ПолучитьПанель(цел номер);
Панель СоздатьПанель;
Панель УдалитьПанель (цел номер);
Панель ВыбратьПанель (цел номер);
внутристроч цел ТекущПанель() Начало вернуть выбраннаяПанель; Конец;
внутристроч СледПанель() Начало ВыбратьПанель(ТекущПанель++); Конец;
...
частное:
стд::вектор<Панель> хран;
цел выбраннаяПанель;
Конец
Аноним 27/05/17 Суб 01:53:56  996889
>>996887
Есть.
>>996888
А что, довольно мило.
Аноним 27/05/17 Суб 01:56:20  996890
>>996889
>Есть.
Что есть?
Каким образом осуществить перегрузку?
Я пробовал несколько вариантов, но компилятор жалуется на всякие ошибки типа missing type specifier и что-то ещё.
Аноним 27/05/17 Суб 02:04:11  996892
download (2).png (44Кб, 523x705)
>>996890
>>Есть.
>Что есть?
Возможность.
Аноним 27/05/17 Суб 02:06:24  996893
>>996890
#include <iostream>
using namespace std;
class Vec;
class float3
{
public:
float v[3];
void set(Vec in);
};
class Vec
{
public:
float x, y, z;
void set(float3 in){x = in.v[0]; y = in.v[1]; z = in.v[2];}
};
void float3::set(Vec in) {v[0] = in.x; v[1] = in.y; v[2] = in.z;}
int main() {
Vec foo;
foo.x = 1;
foo.y = 2;
foo.z = 3;

float3 bar;
bar.set(foo);
std::cout<<bar.v[2];
return 0;
}
Аноним 27/05/17 Суб 02:06:24  996894
>>996892
Я примерно так и делал.
Сейчас вроде разобрался, проблема походу была в циклических зависимостях файлов.
Аноним 27/05/17 Суб 02:50:06  996899
>>996894
Разрулил вроде как.
У меня эти структурки были в отдельных файлах.
В начале файлов есть #pragma once ибо они во множестве других мест ещё подключаются.
В одном из файлом (например float3.h) можно подключить второй (Vec.h), и там же реализовать конструктор и перегрузку из Vec в float3.
В файле Vec.h просто в начале пишем "struct float3;", далее в классе/структуре можем объявить прототипы для конструктора и оператора=, и потом в каком-то другом файле написать реализацию этих методов (можно в том же float3.h после объявления структуры float3).
Аноним 27/05/17 Суб 02:59:38  996901
>>996899
В хедерах реализацию писать моветон, пиши в плюсовом коде.
Можно только мелкие инлайны типа метода-инкрементора.
Аноним 27/05/17 Суб 03:03:28  996902
1385827567121.jpg (41Кб, 576x463)
>>996901
>В хедерах реализацию писать моветон
Скачай исходники boost или какой-нибудь реализации стандартной библиотеки и посчитай число строк в хедерах и не-хедерах.
Аноним 27/05/17 Суб 03:07:05  996904
>>996902
Я сказал "моветон". Я себе такое обычно не позволяю.
И нет, я не петух, а плюсер, на петухе я только небольшой скриптинг строк максимум на 500 делаю, посерьёзнее уже задача для плюсов.
Аноним 27/05/17 Суб 04:00:46  996913
>>996794
Хм, я всё так и делал и не работало. При попытке запуска консольку выводит с сообщением, что программа завершила работу с ненулевым кодом. А сегодня я поставил MinGW в очередной раз, 64-битный, и всё заработало.
И CLion заработал, к слову говоря.
Значит, три с половиной работающих стула уже. Это, codeblocks и ещё половина qt-креатора, которая даже при статической линковке самостоятельный ексешник мне не соизволило собрать.

Всем спасибо большое за наводки и советы - думаю пока этого пространства для плавания хватит, пойду тестировать последние обновы с++.
Аноним 27/05/17 Суб 06:14:08  996919
>>996709
>> А на люниксах есть решение, раз уж ты всё ругаешь? Мне то для себя, могу свободно обперекатываться.
Идеального решения НЕТ. Самое вменяемое по удобству и скорости работы, для меня во всяком случае, это CLion. Eclipse гораздо медленнее, к примеру, да и многих фич у него нет (а может и есть, я с этим уже года 3 не связывался). Недоредакторы, типо codeblocks, codelite, wxc++ (или как его там) и прочие, прочие (в т.ч. всякие редакторы типо atom, vscode и т.д.) это все не то. Рефакторинга нет (имеется в виду нормальный рефакторинг, с редактированием типов параметров, количества аргументов и прочим), вывода типов нормального нет, ошибок шаблонов нет и так далее до бесконечности.
Можно попробовать QtCreator, но он, как по мне, кастрированный слишком, до нормальной IDE не дотягивает, но для новичка, я думаю, сойдет, особенно, если у тебя слабенькая пекарня (потому что все эти java-IDE жрут столько ресурсов, что пиздец...)
Аноним 27/05/17 Суб 11:37:02  996942
>>996887
Да.
Аноним 27/05/17 Суб 13:38:48  996982
>>996901
Два чаю этому.
>>996902
Аргумент инвалид, так как шаблоны не разносятся по файлам, а идут инлайном на крайняк выносятся за пределы класса в том же хедере. А теперь ты скачай какую-то не шаблонную либу и посмотри, сколько там реализаций в заголовочниках.
Аноним 27/05/17 Суб 15:17:18  997027
>>996982
>так как шаблоны не разносятся по файлам,
Очень даже разносятся. Обычно реализацию отделяют и выносят в отдельный хидер - делают .h и .hpp или .inc. В одном хидере необходимый минимум, во втором -тяжелая реализация, которую инклудят в .cpp при использовании.
Аноним 27/05/17 Суб 15:31:29  997032
>>997027
Ок, но суть то осталась прежней - реализация все равно остаётся в хедерах.
Аноним 27/05/17 Суб 17:05:53  997071
Анон, у меня есть sqlite база данных с зарплатами сотрудников. Как в ООП-парадигме реализовать выборку данных из этой БД по идентификаторы сотрудника? Есть ли паттерны для решения такой задачи?
Аноним 27/05/17 Суб 17:12:44  997073
>>997032
>реализация все равно остаётся в хедерах.
Но в большинстве случаев этот хидер подключается в cpp и парсится только один раз.
Аноним 27/05/17 Суб 18:20:52  997104
>>997071
> в ООП-парадигме
Делают ORM.
Аноним 27/05/17 Суб 18:25:37  997107
>>997104
А без орм?
Аноним 27/05/17 Суб 18:29:45  997109
>>997071
О блять, тысячи их. Начиная с активного объекта до маппинга (тот же ORM), можно еще шлюз таблицы данных или шлюза записи данных. Если тебе интересны паттерны взаимодействия с базой данных, можешь прочитать Patterns of Enterprise Application Architecture (паттерны корпоративных приложений в переводе), книги что на русском, что на англицком есть в доступе. Ссылок не будет.
Аноним 27/05/17 Суб 19:00:37  997123
>>997107
Без ORM получится не ООП.
Аноним 27/05/17 Суб 23:07:05  997218
Можно ли таким способом как-то инициализировать myFloat1,2,3? В таком виде не работает

void ini(float myFloats)
{
myFloats[0] = new float(1.0f);
myFloats[1] = new float(2.0f);
myFloats[2] = new float(3.0f);
}

int main()
{
float myFloat1 = nullptr;
float
myFloat2 = nullptr;
float myFloat3 = nullptr;
float
myFloats[] = { myFloat1, myFloat2, myFloat3 };
ini(myFloats);
}
Аноним 27/05/17 Суб 23:12:36  997219
>>997218
цы, ты зачем переменной nullptr присваиваешь. ты либо делай
float myFloat1=nullptr;
...
float
myFloats[] = {myFloat1,...
либо
float myFloat1, myFloat2,...
...
void ini(float myFloats[])
{
myFloats[0]=1.0f;
...

а еще лучше почитай про указатели.
Аноним 27/05/17 Суб 23:15:46  997220
>>997219
ну ебаный по голове, разметка всё испортила.
float ~myFloat1=nullptr;
...
float ~myFloats[] = {myFloat1,...
либо
float myFloat1, myFloat2,...
...
void ini(float myFloats[])
{
myFloats[0]=1.0f;
...
где ~ - оператор указателя (звездочка).
Аноним 27/05/17 Суб 23:18:07  997222
21.PNG (7Кб, 421x235)
>>997219
Не знаю как тут вставить код, но в общем вот скрин
Аноним 27/05/17 Суб 23:21:02  997223
>>997220
>void ini(float myFloats[])
myFloats[] должен же быть типа массив указателей, а не просто массив флоатов, ну в общем даже если так, то все равно не работает, я скрин выше приложил
Аноним 27/05/17 Суб 23:24:40  997225
>>997222
не компилируется или что?
Аноним 27/05/17 Суб 23:33:07  997229
>>997225
Компилится, просто делает не то что я хочу, я хочу таким образом иницилизировать переменные myFloat1,2,3 но они так и остаются nullptr, зато если посмотреть потом содержимое myFloats то вот там как раз и создались эти 3 переменные
Аноним 27/05/17 Суб 23:37:03  997231
>>997229
Сударь, вы к нам с мира Джавы приехали?
Аноним 27/05/17 Суб 23:37:08  997232
>>997229
тогда попробуй сделать myFloat1,2,3 переменными, а массив так и оставляешь двойным указателем и не трогаешь функцию. массив инициализируешь его как &myFloat1, &myFloat2 и тд
Аноним 27/05/17 Суб 23:41:15  997236
>>997232
Вот так не получится, ибо в действительности у меня там не флоаты будут а указатели на объекты абстрактных классов, т.е. переменными не получится их сделать
Аноним 27/05/17 Суб 23:42:49  997238
>>997236
гошподи. почему указатели хранишь в флоатах? почему не можешь просто создать указатели абстрактных классов?
Аноним 27/05/17 Суб 23:43:39  997241
>>997238
просто со стороны выглядит так, как будто ты пытаешься срать через ноздрю. ты в образовательных целях это делаешь или считаешь, что это единственно верное архитектурное решение?
Аноним 27/05/17 Суб 23:46:40  997245
Не смог ничего нагуглить. Есть же явно какие-то инструменты в библиотеке string для того, чтобы разделить строку по разделителям.
Например из "Плюсы не самый плохой язык"
Можно было вытащить сначала Плюсы, потом не, а потом самый и тд.
Я вот знаю только find() substr(), но тогда нужно буферную строку делать и вообще не красиво получается.
Аноним 27/05/17 Суб 23:47:56  997246
>>997241
И то и то наверное, ну я хочу так инициализировать нужные мне переменные объединив их в массив и передав в функцию, ну раз по-другому нельзя значит буду потом доставать их из массива и приравнивать вручную.
Аноним 27/05/17 Суб 23:51:47  997247
>>997245
>Плюсы не самый плохой язык
>Нет встроенного типа-строки
>В стандартную либу для строк не завезли .split()
Аноним 27/05/17 Суб 23:55:25  997248
>>997245
Нету ничего, братишка.
>>997246
Попробуй в своём коде, там где инициализируешь {&myfloat1, ... }, тогда 3 звезды будет, в функции-инициализации нужно тоже поправить.
Аноним 27/05/17 Суб 23:58:15  997249
>>997248
Да я хотел через массив указателей, 3 звезды не оч хочется делать
Аноним 28/05/17 Вск 00:01:20  997251
>>997248
>>997247
А ну и ладно, не очень то и хотелось. Сам напишу, может даже класс бахну. в портфолионапишу, что имею собственную библиотеку.
Аноним 28/05/17 Вск 01:20:40  997266
>>996369
тогда в какую сторону двигаться? как-то идей нет
Аноним 28/05/17 Вск 09:23:46  997340
>>997266
Начни с изучения дерева поиска.
Аноним 28/05/17 Вск 10:23:24  997348
>>997218
Хуйню какую-то написал, потому и не работает.
Аноним 28/05/17 Вск 13:21:50  997397
c++.png (33Кб, 762x269)
wtf?
Аноним 28/05/17 Вск 13:31:32  997404
>>997397
Microsoft Visual C++ Redistributable
Написано же
Аноним 28/05/17 Вск 14:25:30  997441
584d4d84e039301[...].png (590Кб, 1600x1000)
Кто кодит с линуксов? Какие подводные? Думаю перекатиться на минт какой-нибудь. но слышал, что с библиотеками под пингввинов все плохо, хотя много инфы нарыть не удалось. Поясните
Аноним 28/05/17 Вск 14:47:52  997460
>>997441
Провокация срача незаметна.

> Поясните
За щёку пояснил тебе.
Аноним 28/05/17 Вск 14:58:22  997462
>>997441
Какие билиотеки тебя интересуют, не msvcrt ли?
Аноним 28/05/17 Вск 15:08:55  997470
>>997397
Это библиотеки Visual C++ разных версий и битностей. У меня примерно такая же пачка на ЖД, ставлю во избежание сюрпризов, не во всех программах явно написано, что ставить.
Аноним 28/05/17 Вск 15:14:29  997475
>>997462
Слышал, тот же conio не дружит с линуксом.
Аноним 28/05/17 Вск 15:24:47  997480
>>993446 (OP)
Почему везде (ладно не везде, но много где) пишут, что обучение программированию лучше начинать с C++ ?
Аноним 28/05/17 Вск 15:26:21  997484
>>997480
Везде пишут, что с поц-кала.

Впочем, и те, и те — больные на тугодумку.
Аноним 28/05/17 Вск 15:49:14  997501
>>997475
>> conio
>> линуксом
Школьный учитель по информатике 60 лвл плес
Аноним 28/05/17 Вск 15:51:30  997504
>>997475
>conio
>2k17
В голос обдристался.
Аноним 28/05/17 Вск 15:51:51  997505
>>997397
Наслаждайся своей спермопарашей.
Аноним 28/05/17 Вск 15:54:00  997507
В моём регионе одна вакансия по запросу С/С++
Зато WEB и 1C хоть жопой жуй.
Ума не хватает, чтобы работать на себя. Фрилансу это нахуй не надо кроме студентов с лабами
Уже смазал лыжи в ДС2.
Пасаны, кому нужны кресты в 2017, кроме ынтерпрайз говна?

Аноним 28/05/17 Вск 15:57:05  997509
>>997507
В крупных конторах типа яндекса, мейла, дохуя нужны. Но если ты чмо, писавшее только laba1.cpp, туда будет почти нереально попасть, а если и попадешь - будешь работать сверх нормы и за копейки. Там макакам платят не особо много, якобы престиж от надписи "Yandex" в трудовой это компенсирует.
Аноним 28/05/17 Вск 16:03:09  997512
>>997509
Это понятно, чтобы попасть в топы нужен неплохой math-background. Я то макачу уже давно и всё забыл. Есть вариант в Unity-геймдев вкатиться, но там своя атмосфера.
Аноним 28/05/17 Вск 16:14:47  997513
>>997512
Вкатись в системное или сетевое программирование, будешь потом с десятком флагов возле сокета плясать и еполлы трахать.
Аноним 28/05/17 Вск 16:25:47  997524
>>997484
Почему? Разве изучение С++ не дает какого-то собого понимания программирования? Почему тогда советуют?
Аноним 28/05/17 Вск 16:26:57  997525
>>997524
> Разве изучение С++ не дает какого-то собого понимания программирования?
Ты про "выучил сипласплас — счетай выучил все языки"?
Аноним 28/05/17 Вск 16:40:29  997528
>>997525
Наверно. Я же не знаю почему его советуют. Типа чем сложнее язык, тем проще потом перекатиться.
Аноним 28/05/17 Вск 16:48:15  997534
>>997528
Он скорее просто растягивает очко. Перекатится потом правда легче — всё кажется слишком маленьким для твоего расхуяренного очка, если это конечно не хачкели.
Аноним 28/05/17 Вск 17:59:42  997562
>>997534
А если начинать с хачкеля, то что тогда?
Аноним 28/05/17 Вск 18:20:40  997568
>>997562
Тогда будешь колесить по дорогам Вальхаллы.
Аноним 28/05/17 Вск 19:46:55  997588
А это, даже стыдно за такой вопрос, как не создавать консоль вообще при запуске программы? Не скрыть её сразу после запуска, а вообще не показывать, что бы даже не мигала.
Аноним 28/05/17 Вск 20:02:37  997598
>>997534
А для чего в современном мире вообще используется С++?
Аноним 28/05/17 Вск 20:35:15  997615
>>997598
Что угодно, где нужен перформанс. Попробуй пораскинуть мозгами.
Аноним 28/05/17 Вск 20:36:49  997616
>>997588
Создавай win32 приложения. Аналог на линупсах не знаю.

>>997598
Всякая системная, сетевая, околонизкоуровневая хрень, где не хочется писать с нуля на С, а хочется использовать современный язык с современным синтаксисом и кучей либ на все случаи жизни.
Аноним 28/05/17 Вск 21:01:36  997623
>>997616
> кучей либ на все случаи жизни
Ну это ты конечно слегка напиздел
Аноним 28/05/17 Вск 21:21:50  997633
>>997623
Он про современный язык напиздел, а про либы — это правда.
Аноним 28/05/17 Вск 21:27:55  997635
>>997633
>>997623
Ну епта, из языков с такими возможностями для системного/низкоуровнего программирования и различными либами, у крестов лучший синтаксис. В общем то, мне кроме крестов и голого С ничё на ум не приходит. Ну разве что ассемблер, но на нем что нибудь прикладное крупное писать - это ояебу пристрелите меня.
Аноним 29/05/17 Пнд 00:17:09  997715
>>997616
На линупсах консоль никогда не показывается просто так. В винде она показывается потому, что программы вызывают WriteConsole вместо printf, в позиксах такой поебени нет (либо она исчезающе редка).
>>997635
>В общем то, мне кроме крестов и голого С ничё на ум не приходит.
Питон, Перл.
Аноним 29/05/17 Пнд 01:42:46  997755
>>997588
Спермоблядь незаметна. Где ещё есть такие искусственные проблемы?
Аноним 29/05/17 Пнд 07:45:30  997799
>>996663

>а использование Java/C# для разработки графических приложений известно к чему приводит.

К чему приводит? В чем подвох? А то вот вкатываюсь и понимаю, что на C# охренеть как проще гуй заделать, причем не надо под 100 мб библиотек таскать с приложением

Кстати, статическая линковнка на Qt требует лицензии (по хорошему). Т.е. сделать-то ты можешь, но распространять нет.
Аноним 29/05/17 Пнд 10:51:45  997848
>>997715
>Питон, Перл.
Ты про пхп и жаваскрипт забыл - топовые языки для системного и низкоуровневого программирования.
Аноним 29/05/17 Пнд 11:34:28  997863
Почаны, поясните за сертификаты, кто-нибудь получал, есть ли в них профит?

Где можно попроходить тесты и посмотреть примерные задания, которые выдают для получении сертификата?

Я какое-то время по нужде быдлокодил (на работе заставили выучить если это можно назвать словом "выучить" кресты и писать на них несложные MFC приложения), а сейчас решил взяться за голову и научиться писать нормальный код, за последний год немного подтянул синтаксис, упорядочил знание ООП, конечно, гуру С++ все равно назовут это быдлокодом, но я готов совершенствоваться и дальше.
Теперь хочу попробовать получить какой-нибудь сертификат. Поможет ли это при устройстве на работу? Спрашиваю, потому что читал разные мнения вплоть до того, что сертификаты только хуже делают при трудоустройстве.
Аноним 29/05/17 Пнд 13:41:51  997901
>>997863
Двачую этого, тоже интересно
Аноним 29/05/17 Пнд 13:51:37  997913
>>997799
Дотнет уже занимает пару гигов на диске. Виртуальная машина медленно интерпретирует байткод, количество ненужных выделений памяти и кастов типов растёт экспотенциально со сложностью программы, сборщик мусора может полностью заморозить гуй в любой момент. В результате получаем 50% потерю производительности у конечного пользователя только ради того чтобы быдлокодерам было проще шлёпать Form1_Click. Это приемлемо для энтерпрайзных систем на серверах, но графические приложения должны быть исключительно нативными.
Аноним 29/05/17 Пнд 13:55:55  997917
>>997799
В том что это говнище будет работать с таким скрипом, с каким твои, блеять, родители делали тебя, сука, гомункула.

Попробуй на торренте найти ту же 2010 или 2008-ю студию — последние нативные версии. И сравни их с последней, 2017. При том, что она работает куда лучше той же 15-й, оно всё ещё лагает на любом железе хуже жидеи (у той хоть есть честная несколькоминутная индексация, во время которой не поработаешь, а вот у студии такое говно перманентно).
Аноним 29/05/17 Пнд 14:04:50  997920
>>997917

О, не знал что студия 2017 не нативная. А я то думал хули она так лагает блять.

Выходит VS2017 написали на C#? пиздос. Зашквар уровня IDE от JetBrains на джаве
Аноним 29/05/17 Пнд 14:06:38  997921
>>997480

Обучение программированию лучше начинать с С.
С++ язык слишком сложный и уже для опытных программистов. Вкатываться в него не имеет смысла.

А вот С более прост, при этом мощь языка так и прет как и в С++.
Аноним 29/05/17 Пнд 14:08:57  997925
Никуда вы не денетесь от прогресса. Гуй на JS/C# — это объективная реальность.

Objective C тоже был в своё время тормозным гогном, но ничего, макоблядь писали.
Аноним 29/05/17 Пнд 14:09:30  997926
>>997921
>мощь языка так и прет
Если не сказать, что ПРОТЕКАЕТ
Аноним 29/05/17 Пнд 14:13:26  997927
>>997926
УТЕКАЕТ
Аноним 29/05/17 Пнд 14:14:07  997928
>>997925
>Гуй на JS/C# — это объективная реальность.
>JS
>J
>S

Ты ебанутый?

Я БЛЯТЬ ХУЕЮ. Люди хотят писать программы на языках которых не существует физически. Ты понимаешь что твоего JS кроме браузера нигде нет?

Взять тот же Node.js, это обычная С программа которая выполняет код написанный с синтаксисом JS.

А теперь представь громоздкость среды которая должна будет целый GUI создавать подобным методом. Нахуй эти костыли нужны, когда уже есть QT/GTK для белых людей или те же Windows Forms/WPF для C#?

Какому мудаку придет на ум писать на яваскрипте ебучий гуи?
Аноним 29/05/17 Пнд 14:23:59  997936
>>997928
Ты сам понял, что написал?
Аноним 29/05/17 Пнд 14:26:49  997937
>>997936

Да. Уже есть managed решение в виде C# отработанного годами для GUI.

Для JS нет нихуя кроме небольшой ноды. JS как языка кроме браузера нигде не существует.

Если так хочется писать менеджед гуи, каким мудаком надо быть чтоб писать на чем то кроме .NET?
Аноним 29/05/17 Пнд 14:28:35  997939
>>997937
Ипать довен. VSCode, Atom и ещё миллиарды десктопных приложений на JS.
Аноним 29/05/17 Пнд 14:31:40  997942
>>997939

Говно написанное через анальные костыли и анальные врапперы над врапперами.

Поссал тебе на ебало, смузихлеб
Аноним 29/05/17 Пнд 14:33:57  997945
GUI можно писать только на WinAPI.
Кто не согласен - нахуй из профессии.
Аноним 29/05/17 Пнд 14:34:34  997946
>>997942
Ты можешь бомбить сколько тебе угодно, но это объективная реальность.
Аноним 29/05/17 Пнд 14:45:16  997954
>>997939
>Atom
Лагает при большом количестве открытых файлов/большом объеме кода. Особенно я почувствовал разницу, когда с атома на phpstorm пересел. Просто как с жигулей в ауди.
Аноним 29/05/17 Пнд 14:45:43  997956
>>997945
Долго и муторно
Аноним 29/05/17 Пнд 15:12:01  997969
>>997863
Нету сертификатов, потому что всем похуй. Сертификаты появляются, когда язык начинают немеренно форсить, тот же C#, к примеру.
Я не знаю, какие ты там собрался по крестам сертификаты получать, но я бы туда только шаблонов и запихивал, чтобы на десять тысяч проходило парочку человек (я бы не прошел). Самое лучшее, что ты можешь сделать, так это написать свою какую-нибудь либу или еще что. Сделай на бич-хабе реп и по-маленьку запушивай туда новинки своих творений, через пол-года увидишь, что все, что ты делал - говно.
Аноним 29/05/17 Пнд 16:00:37  997989
>>997969
У меня вообще эта идея с сертификатами появилась, когда возник вопрос, а как вообще определяют подойдет ли кандидат на должность программиста или нет. Ведь кроме стажа по сути сейчас ничего не просят. Допустим, у меня 10 лет стажа, я в это время в том числе и кодил, но как это проверить? Сертификат может дать хоть какой-то срез, хотя, понимаю, что от быдлокодерства это все равно не защитит.

Впрочем не суть, я все же решил просто попроходить различные тесты и понял что пока никуда не гожусь, т.к. местами не понимаю основ. В следующем посте по этому поводу у меня будет вопрос.
Аноним 29/05/17 Пнд 16:23:02  997998
>>997989
Ну какого-нибудь Сеньора Помидора посадят рядышком, он будет слушать, что за хуйню ты несешь. Если будешь пиздеть, то точно объебешься. Если контора хуевая, то отправят к ХаРэ (ЭйчАр, как они любят себя называть), бывают такие, что там королева бензоколонки сидит, которая отсеивает в две кучи и, как следствие, без должного надсмотра в саму же контору попадают лютые объебосы, которые могут только промеж булок шурудить своим волосатым языком.
Стаж, это тоже понятие такое, я бы за стаж, конечно, не цеплялся. Но, однако, как минимум год нормального программирования у тебя должен быть за плечами и вот этот год ты постоянно должен заполнять свою головешку полезной информацией и по итогу неплохо было бы посмотреть, что поменялось за год. Я думаю, если ты будешь каждый месяц инспектировать и анализировать свои предыдущие работы и постепенно набивать хоть на чем-нибудь руку, то там понятно станет что и как. Например, тебе станет очевидно, какие ты решения принимал, насколько они подходили или нет в конкретных ситуациях. Все-таки это тоже опыт.
Был тут до меня один человек, который работал года 4. Стаж, по сути, 4 года, а в коде, ну полная хуйня творилась. Человек применял паттерны налево и направо, делал какую-то хуйню там, где это не надо было и (sic!) будо охуительно лицезреть что-то вроде такого:
>> QMap<...,...> m_map;
>> ...
>> if (m_map.contains(key)) { return m_map[key]; }
Блять. Человек 4 года в сраном Qt просидел и даже не осилил контейнеры. Он все хвастался, что постоянно подключает новейшие сборки Qt, но самое веселое было то, что он использовал legacy-подход к работе, который был еще в 4 версии. То есть вместо кошерных ныне соединений при помощи указателей на функции и лямбд, как тут уже не раз обсуждалось, он цеплял все через SIGNAL(...) и SLOT(...). Про охуительную реализацию PIMPL на классы с тремя интовыми полями я вообще молчу.

Вот эти тесты, стаж, сертификаты какие-то, по-мне, честное слово, хуйня полнейшая. Нужно уметь применять навыки а не давить количеством якобы знаний и сертификатов.
Аноним 29/05/17 Пнд 16:27:22  998000
stacksheaps.png (30Кб, 1178x665)
>>997989
а вот и вопрос.

Нужно определить что выдаст этот код:
Ответ: ddcccdd

Я пытался в нем разобраться, отнумеровал (1-11) строки, в которых может быть какой-то вывод и затем для лучшего понимания начал сам себе объяснять каким образом получился этот ответ. И в некоторых местах я не понимаю почему и так и прошу объяснить.

1-3. как мне кажется у меня не возникает вопросов. В 1 и 2 выделяется память в стэке и запускает обычный конструктор. В 3 пункте на основе уже имеющейся переменной методом копирования создается новая переменная в стэке.
4. Вызвал у меня легкое непонимание в совокупности с 5 и 6. Почему в 4 при создании ссылки и присвоении ей значения другой переменной (я так понимаю ссылка теперь будет указывать на стэк, в котором хранится переменная с) никакой конструктор не вызывается.
5-6. При этом, если переменная объявляется и тут же инициализируется значением другой переменной того же типа, то задействуется конструктор копирования (пункт 5), но при этом, если переменная была объявлена заранее и ей присваивается значение другой переменной, то никаких конструкторов не задействуется (пункт 6)
7. При создании указателя выделяется память в хипе размером с переменную типа А, немного сбивает А(с). Возникает вопрос, при этом в эту память записывается что-то?
8. Разница с предыдущим в том, что передается ссылка. И вот тут у меня самый большой вопрос. Ссылка указывает на стэк, а указателю нужен хип, верно? В этой строке работает конструктор копирования, но я не понимаю почему.
9. со статик кастами я плохо знаком, так что тут у меня ни ответов ни вопросов.
10. вопросов не вызывает
11. Функция принимает 2 параметра по ссылке. В первый параметр передается цифра, и вот тут я снова не понимаю почему работает обычный конструктор, а не копирования. Второй параметр выглядит понятнее, и, как я подумал, там тот же механизм, что и в пункте 3, но нет, тоже обычный конструктор.

Кто-нибудь сможет объяснить, пожалуйста, где я не прав и ответить на вопросы.
Аноним 29/05/17 Пнд 16:37:47  998006
>>997998
Ещё год назад я делал лабы на QT5, про новый синтаксис вообще ничего не слышал в то время. В официальных доках всё было по-старому.
Ничего удивительного, что чувак про него не знал.
Аноним 29/05/17 Пнд 16:48:23  998011
Пишу программы для расчета зарплаты сотрудников. Расчет основан на стаже работы, количестве подчиненных и верхнем пределе надбавки. Стаж и количество подчиненных используются с коэффициентами.

Есть абстрактный класс для сотрудников worker.
От worker наследован head - абстрактный класс для всех сотрудников, которые могут иметь подчиненных.
employee : worker не может иметь подчиненных.
manager : head и sales : head могут иметь подчиненных.

Функция расчета зарплаты определена в worker виртуальной. В head определена вспомогательная функция расчета зараплаты с учетом числа подчиненных и поле std::set подчиненных.

Я хочу избавиться от дублирования кода, потому что функция расчета везде почти одна и та же, она в employee и она же в manager и sales отличается только тем, использует ли она число подчиненных.

Можно сделать ее общей для всех и в классе employee число подчиненных использовать с коэффициентом 0.

Как это лучше реализовать? Для этой функции нужен set подчиненных, а определять его в worker как поле я не хочу, потому что worker - общий класс, и не все сотрудники могут иметь подчиненных.
Аноним 29/05/17 Пнд 17:08:50  998020
>>997998
>>> QMap<...,...> m_map;
>>> ...
>>> if (m_map.contains(key)) { return m_map[key]; }

Ошибка не очевидна без контекста. Например: обрабатывается поток данных, и на каждом шаге пары могут быть вставлены и исключены, и если ключа нет, то может возвращаться какое-то "пустое" значение (не обязательно default-constructed).

Если тип функции - референс, то уже смешнее, конечно.
Аноним 29/05/17 Пнд 17:19:17  998022
>>998020
В противном случае он возвращал объект по-умолчанию, если мне память не изменяет. Значения он только вставлял. Если мне память не изменяет, это было что-то вроде кэша уже использованных данных или как это можно назвать.

>>998006
Этому синтаксису уже несколько лет
Аноним 29/05/17 Пнд 17:40:15  998036
Почему в VS2015 отваливается дебаг? Breakpoint'ы не срабатывают, код выполняется. Запускаю в режиме отладки, гугл не помогает.
Аноним 29/05/17 Пнд 17:48:42  998040
>>998036
всё, неактуально. это я д
Аноним 29/05/17 Пнд 18:05:47  998053
>>998022
Если это мемоизация, как ты написал, то в чем проблема в приведенном участке? Так же и делается.
Аноним 29/05/17 Пнд 18:09:25  998054
>>998053
Нахуя искать дважды?!
Аноним 29/05/17 Пнд 18:12:08  998055
2.PNG (5Кб, 572x134)
1.PNG (8Кб, 813x110)
Почему код с 1.png в rezultAddress заносит 0x0100AA00 а не 0x0040AA00?
Аноним 29/05/17 Пнд 18:13:47  998056
>>998053
Короче, фиксю по-быстрому. Уже нихуя не помню, если до репа завтра доберусь выложу это чудо.
Аноним 29/05/17 Пнд 18:34:07  998058
>>998055
Потому что результат сложения числа с указателем - это указатель + sizeof(тип)*число
Аноним 29/05/17 Пнд 19:09:32  998070
>>997954
Никто не говорит, что не лагает. Да, это жрёт память и ЦП. Но зато быстро (а значит и дёшево) и удобно (наверное, я сам не пробывал).
Аноним 29/05/17 Пнд 19:14:23  998074
download.png (73Кб, 992x490)
>>997998
>>> QMap<...,...> m_map;
>>> ...
>>> if (m_map.contains(key)) { return m_map[key]; }
>Блять. Человек 4 года в сраном Qt просидел и даже не осилил контейнеры.
Ну или ты не осилил.
Аноним 29/05/17 Пнд 19:37:06  998090
>>998074
Жёстко ты его.
Аноним 29/05/17 Пнд 19:46:57  998095
>>998054
Потому что для типов, которые не имеют "дэфолтных" значений это единственный вариант.
По мне так это предложение к обсуждению и улучшению, а не пиздец ошибка. Можно в optional значение завернуть например. Придираешься ты.
Аноним 29/05/17 Пнд 20:20:02  998114
Тамплиеры, помогите. Хочу вызвать LoadLibraryA по адресу в виртуальной памяти, при этом адрес я хочу получить сам, основываясь на данных таблицы импорта скомпилированного PE файла и ImageBase, который я получаю через FindImageBase(). Я скомпилировал приложение (код 1.png), вытащил из получившегося PE RVA функции LoadLibraryA. Как я понял, это RVA, в который будет записан VA той самой функции, но тем не менее получаемый адрес отличается от того, что я получаю по auto x = LoadLibraryA. ЧЯДНТ?
Аноним 29/05/17 Пнд 20:20:34  998115
2.PNG (37Кб, 836x345)
1.PNG (37Кб, 950x509)
>>998114
Ну ебать, картинки как обычно забыл.
Аноним 29/05/17 Пнд 20:22:17  998119
>>998114
Зачем делать именно так? Конкретно по вопросу ничем не помогу, это уже даже не байтоёбство, а какой-то изврат.
Аноним 29/05/17 Пнд 20:23:13  998121
Есть темплейт, представляющий собой mutex-ограниченное std::queue<unique_ptr<T>> с паблик Push, Pop и is_Empty.

Понадибилось в другом классе иметь референсы на хранимые объекты.
Можно ли в одном темплейте объединить возможность работы как с unique_ptr<T>, так и с &T или вообще с <T> напрямую? Или городить отдельный темплейт для этого?

Заставлять его хранить shared_ptr<T> тоже не хочу, потому что многие классы пользуются этой же очередью для хранения и уникальных объектов тоже.
Аноним 29/05/17 Пнд 20:25:36  998123
>>998119
Это подготовительные меры. Мне главное понять, как основываясь на ImageBase и RVA в таблице импорта получить VA, по которому можно вызвать LoadLibraryA. Разумеется, в реальном приложении всё будет несколько иначе.
Аноним 29/05/17 Пнд 20:27:19  998131
>>998121
Ну так что тебе мешает получить из unique_ptr ссылку на объект?
Аноним 29/05/17 Пнд 20:33:35  998136
>>998131
unique_ptr на объекты хранятся в map другого класса (выше по иерархии), он же управляет временем их жизни.

Дочернему классу он их передает для обработки (временно), гарантируя, что они никуда не исчезнут и не будут удалены до конца обработки. Дочерний класс их не хранит, соответственно передавать shared_ptr смысла нет. При этом передает он их через "реалтаймовую" очередь, для которой и создан темплейт.

Изначально в проекте использовались только очереди с unique_ptr и проблем не было. Теперь понадобилось использовать тот же класс "живой очереди" для любых объектов или референсов на них и вопрос в том, можно ли универсализировать темплейт.
Аноним 29/05/17 Пнд 20:36:50  998139
>>998136
В голову пришло только декларить все необходимые queue в твоём классе, а потом использовать нужные, оверлоадя все Pop и Push, либо указывая в конструкторе варинт использования.
Аноним 29/05/17 Пнд 20:44:05  998145
>>998136
Хочешь сделать контейнер для любых типов?
Ну можешь хранить всё добро в виде объектов одного базового класса на всех, вроде как так можно делать.
Я не знаю, почему, но мне кажется, что тебе может помочь паттерн Visitor.
Аноним 29/05/17 Пнд 20:47:28  998146
>>998145
Технически, он и так работает для базовых типов, но способы передачи объектов и указателей отличаются, а значит тело функции должно понимать, что перед ней, и вызывать соответствующие методы (std::move для unique_ptr, прямая передача для &Object).

Сами объекты мне там хранить не нужно вообще никогда, либо умные указатели, либо референсы.
Аноним 29/05/17 Пнд 20:53:07  998148
>>998146
Мне кажется, тебе реально тут Visitor может помочь.
Аноним 29/05/17 Пнд 20:54:20  998149
Вот, если лагает последняя студия, то какую поставить? Слышал, что более старые вменяемые. Какие именно, и где их достать?
Аноним 29/05/17 Пнд 20:56:47  998154
>>998149
Вот же тебе писали -> >>997917

Аноним 29/05/17 Пнд 20:57:39  998156
>>998154

Хорошо, спасибо
Аноним 29/05/17 Пнд 21:07:29  998163
>>997920
Чот хуево. Я сейчас на 2015, некоторых фич с++17 уже не хватает.
Аноним 29/05/17 Пнд 21:09:43  998164
>>998163
Так не вышел ещё стандарт.
Аноним 29/05/17 Пнд 21:10:42  998165
>>998164
Радыю по этой штуке
http://en.cppreference.com/w/cpp/utility/optional
Аноним 29/05/17 Пнд 21:18:27  998174
>>998165
Так там же он вроде есть в experimental, не?

Даже если нет — возьми из буста/фолли/кути или что ты там юзаешь (да да, привыкай тащить в проект кучу говна руками, это очень жизненный опыт шиндовс-программера).
Аноним 29/05/17 Пнд 21:19:04  998176
Либо напиши свой опшен, там 20 строк кода.
Аноним 29/05/17 Пнд 21:22:18  998180
>>998176
Оно-то да, но в стандарте приятнее.
Аноним 29/05/17 Пнд 21:52:24  998210
>>998123
пиздуй в с-тред
Аноним 29/05/17 Пнд 22:01:51  998218
>>998121
>>998146
Используй std::move для всех проходящих мимо объектов.
Аноним 29/05/17 Пнд 22:06:11  998220
Есть такая проблема
https://gist.github.com/tjarrow/d9b447cc48c663a7343b0bd7601b831e
Это цифровая сортировка по 16-чной записи
почему-то упорно не хочет работать с количеством элементов, меньше чем 10
дебажил долго и упорно - так и не разобрался
подскажите, где ошибка
Аноним 29/05/17 Пнд 22:09:45  998224
>>998220
>почему-то упорно не хочет работать
Когда к доктору приходишь, тоже говоришь "нога упорно не хочет ходить"?
Аноним 29/05/17 Пнд 22:11:27  998225
>>998220
Ты это сам написал? Подозреваю, что нет.
Падает, потому массив хранит разряды чисел. В стандартном 32-битном целом их как раз 10.
Аноним 29/05/17 Пнд 22:26:09  998232
>>998225
ты про mas_col ? он же вроде и хранит 10 разрядов
Аноним 29/05/17 Пнд 22:28:40  998234
>>998232
>mas_col = new int[10]; //Здесь падает
>почему-то упорно не хочет работать с количеством элементов, меньше чем 10
Слющай, ну я и подумал, что когда 9 тут ставишь, программа умирает. Мол, что за глупые вопросы.
Аноним 29/05/17 Пнд 22:34:04  998238
>>998220
http://ideone.com/e2OFVp

ЧЯДНТ?

http://ideone.com/xDoUjw - scanf("%x",...) читает в unsigned int, а не int.
Аноним 29/05/17 Пнд 22:39:51  998244
>>998238
>http://www.cplusplus.com/reference/cstdio/scanf/
>x
>Unsigned argument
Аноним 29/05/17 Пнд 22:50:56  998249
>>998238
ничего не понял. проблема в scanf ?
Аноним 29/05/17 Пнд 22:56:40  998252
Обращаюсь к знатокам
Есть некоторый фрагмент кода, который считает строки в файле хз, есть ли функция для этих целей в стандартных библиотеках, суть не в этом
Почему когда я вставил этот же фрагмент в другую прогу все переменные забрал, библиотеки подключил цикл начал зацикливаться, хотя в той, другой проге, все работает идеально?
Аноним 29/05/17 Пнд 22:58:54  998255
>>998252
Обращаюсь к знатокам
Есть некоторые педали, который вращает колеса хз, может другие вели сразу с педалями, суть не в этом
Почему когда я вставил эти педали в другой велик все тросики забрал, колёса подключил рама начала зацикливаться, хотя на том, другом велике, нормально ездил?
Аноним 29/05/17 Пнд 23:01:50  998256
>>998255
ясно
какой язык, такие и обезьяны
Аноним 29/05/17 Пнд 23:03:03  998257
>>998256
С таким вопросом тебе бы в любом треде по ебалу дали.
Аноним 29/05/17 Пнд 23:07:49  998261
>>998257
о дибил
ты знаешь что через интернет в ебало дать невозможно?
Аноним 29/05/17 Пнд 23:09:02  998264
>>998261
То-то ты до сих пор кровоподтёки потираешь.
Аноним 30/05/17 Втр 06:12:04  998399
>>998074
Ох ты блять, ну спасибо. Вопрос повторяется. Нахуя искать дважды?!
Про второй пример со значением по-умолчанию, я уже сказал, что нужно было делать так или через .find и проверкой итератора (первое проще).

>>998053
Оказалось, я бугуртил даже не из-за этого, он просто пихал все в контейнер и не использовал его вообще. Видело как рудимент, получается. Наверно, да, не такой уж и сильный косяк.



des Аноним 30/05/17 Втр 07:25:12  998406
Годная реализация шифрования des(triple des) у кого-нибудь есть?
Кажется, что уже сто вариаций переробовал, все дают разные результаты шифрования с ключом. И при этом ни один не дает правильного. За правильность взял то, что дает большинство бесплатных сприптов в онлайне, найденных по запросу в гугле "des encode online".
Интересует именно обособленная реализация, а не часть большой библиотеки, которую придется тащить с исполняемым файлом.
Аноним 30/05/17 Втр 08:43:52  998415
>>998406
В каком режиме нужно?
Аноним 30/05/17 Втр 08:55:51  998419
>>998415
ECB
Самый простой.
Аноним 30/05/17 Втр 08:59:51  998421
>>998419
На сисярпе вроде писал DES в ECB. Щас завтрак приготовлю и гляну, если в шарпе поковыряться не брезгуешь..
Аноним 30/05/17 Втр 09:06:41  998423
Снимок.PNG (6Кб, 435x189)
VS2017, если что. Что мне с этим делать? Где достать эти библиотеки?
Аноним 30/05/17 Втр 09:44:06  998437
>>998406
Охуительный критерий правильности.
Тесткейсы botan проходят на этом онлайн декодере - http://des.online-domain-tools.com/

Тесткейсы (в hex-формате): https://github.com/randombit/botan/blob/master/src/tests/data/block/des.vec

Код несильно зависит от остальных компонент ботана, они нужны только для унификации интерфейсов - https://github.com/randombit/botan/blob/master/src/lib/block/des/des.cpp

Можно пересобрать библиотеку, отключив всё лишнее -
https://github.com/randombit/botan/blob/master/src/lib/block/block_cipher.cpp
Аноним 30/05/17 Втр 10:01:32  998444
>>998421
Давай, интересно.

>>998437
Гляну, окей.


Аноним 30/05/17 Втр 10:23:05  998453
>>998444
А я тебя наебал, нет у меня DES. У меня ближайшее к DES это AES и Magma только.
Аноним 30/05/17 Втр 10:51:33  998473
что читать что смотреть что бы устроиться c++ программистом? какие технологии изучать
Аноним 30/05/17 Втр 10:52:37  998474
>>998473

C++-программистом разве работают? Я думал, что это язык для программисткого хобби.
Аноним 30/05/17 Втр 10:53:53  998475
>>998474
а разве не работают? так что там надо уметь что бы взяли на работу
Аноним 30/05/17 Втр 10:56:38  998478
>>998475
STL, Boost, опционально Qt, матан, алгебра, физика, геометрия, теория чисел, криптография
Аноним 30/05/17 Втр 10:58:07  998479
>>998478
stl и boost полостью? а из матана физики геометрии что вообще может пригодиться?
Аноним 30/05/17 Втр 11:07:20  998485
>>998479
Ответ на оба вопроса: смотря на что ты претендуешь и куда идёшь устраиваться. Проблема крестов в плане трудоустройства в том, что их уже не используют повсеместно. Заводы автоматизируют на С/машинном коде/асме, энтерпрайз на джаве/C#, web под asp.net/php. Остаются всякие нефтяные/геологические компании, где шарп/джава не подходит по производительности, а C/asm/op-code не подходит из за сложности разработки. Ну gamedev сюда можно приплести, в том же UE пишут на крестах да и юнити вроде можно заставить их жрать, браузеры, короче долгостроящиеся приложения, обрабатывающие большой сетевой трафик и/или системные функции. Вообще, мне кажется, что в разработке большого приложения голых плюсов будет недостаточно, и придется обращаться к сторонним библиотекам, ибо без них ты работаешь уже не над приложением, а над созданием собственного велосипеда для крестов, грубо говоря, создаешь себе инструмент, а не инструментом создаёшь продукт. Поэтому, КМК, stl может и нахуй шлют, а boost/Qt их аналоги используют активно, поэтому не лишним будет хотя бы скачать и посмотреть чё в них есть.
Аноним 30/05/17 Втр 13:08:13  998537
>>998485
ну вообще я бы хотел просто работать над каким нибудь десктоп приложением, но так походу не получиться, тот же на пример скайп, мб браузер ну и тд, что можешь посоветовать, яп сменить мб, или технологии под c++ подходящие под это
Аноним 30/05/17 Втр 13:23:31  998542
>>998485
>stl может и нахуй шлют
Поясни ньюфагу почему очень многие пишут, что stl - говно и вообще не нужен? Хотя сам Страуструп вроде пишет, что лучше использовать стандартную библиотеку, чем писать свои велосипеды.
Аноним 30/05/17 Втр 13:30:10  998544
>>998542
Какой язык, такая и стандартная библиотека.
Аноним 30/05/17 Втр 13:39:32  998547
Какие есть аналоги для громоздкого switch, например, если я разбираю пришедшие сетвые пакеты и по ключу определяю, что делать с данными?
Аноним 30/05/17 Втр 13:51:57  998551
>>998547
Ключи представляют собой упорядоченные числа и по ключу вызывается функция из массива функций? И неважно сколько разных ключей, на быстродействии это уже никак не скажется.
Аноним 30/05/17 Втр 13:58:26  998556
>>998547
ЕМНИП, даже в крестах есть хэш-таблицы и лямбды.
Аноним 30/05/17 Втр 14:08:45  998561
>>998547
https://en.wikipedia.org/wiki/State_pattern
Аноним 30/05/17 Втр 14:50:30  998578
>>998561
Не вижу, как ему этот паттерн поможет.
Аноним 30/05/17 Втр 15:14:25  998590
>>988927
>Подсветка илитная.
У нее название есть?
Аноним 30/05/17 Втр 15:51:24  998612
>>998542
В STL есть алгоритмы и много довольно полезной дичи, но контейнеры имеют не совсем удобный интерфейс. Это понятно, что комитет пытается облегчить библиотеку как только можно и сделать ее эффективнее, но от этого страдает функционал и принятие мелочей занимает очень долгое время, потому что нахуя иметь встроенный поиск в std::map с возможностью возврата значения по-умолчанию, если элемент не найден, если можно взять std::map::find и потом сравнить std::map::end.
НО:
Я до сих пор не могу понять, почему комитет еще не принял методы по изменению порядка следования байт, чтобы переводить всякую дичь без помощи htons/ntohs и т.д. Почему нет потоков для работы с бинарными, именно бинарными, а не текстовыми данными, как QDataStream, например и приходится пользоваться boost-ами или cereal, к примеру (хоспаде, благослови создателя последнего, потому что это охуенно).
Почему нет рефлексии времени компиляции, ведь это, к слову, не такая уж и непосильная задача для компилятора, который во время работы уже имеет на руках синтаксические деревья. Где sting_view или какая-нибудь подобная дичь. Почему создателям стандарта понадобилось около 20 лет, чтобы понять, что неплохо бы иметь метод std::string::data, который возвращал бы указатель на НЕКОНСТАНТНЫЕ данные.

ВСЕ ПРИНИМАЕТСЯ ОЧЕНЬ МЕДЛЕННО. Кажется, будто бы в комитете сидят ебаные хипстеры, помешанные на создании каких-то ненужных выебонов в языке, вместо того, чтобы требовать наличия хорошей библиотеки.
Аноним 30/05/17 Втр 16:04:24  998625
>>998612
>потому что нахуя иметь встроенный поиск в std::map с возможностью возврата значения по-умолчанию, если элемент не найден, если можно взять std::map::find и потом сравнить std::map::end.
operator[]
Аноним 30/05/17 Втр 16:16:48  998633
>>998625
Он вставляет элемент, если его нет. А тут подразумевается случай, когда вставлять отсутствующий элемент ненужно.
Аноним 30/05/17 Втр 16:56:00  998659
>>998537
>посоветовать
смотря сколько тебе лет, есть ли стабильный доход, чем до этого занимался
Аноним 30/05/17 Втр 18:24:43  998717
>>998612
> Почему нет потоков для работы с бинарными, именно бинарными, а не текстовыми данными
http://en.cppreference.com/w/cpp/io/basic_istream/read
Аноним 30/05/17 Втр 18:25:45  998719
>>998612
> нахуя иметь встроенный поиск в std::map с возможностью возврата значения по-умолчанию, если элемент не найден
Для того, чтобы не бросать исключение из []
Аноним 30/05/17 Втр 18:31:26  998726
>>998719
Это риторический вопрос был. Со знаками препинания у меня проблемы, вот тут то я и обосрался. Но, в общем, ты понял мою идею. И даже не в эксепшене дело, хотя он мог бы и тут вывалиться в зависимости от того, поддерживает ли тип исключительно копирование (как правило, move-семантака не кидает исключений, я такого не встречал). Это просто удобно.
Аноним 30/05/17 Втр 21:45:47  998793
Ананасы, где лучше вставлять Doxygen`овскую документацию: в хидере или в *.cpp?
Аноним 30/05/17 Втр 22:35:05  998815
>>998726
>хотя он мог бы и тут вывалиться в зависимости от того, поддерживает ли тип исключительно копирование
Зачем для создания несуществующего значения копирование?
Аноним 31/05/17 Срд 01:12:47  998888
Можно ли вызвать метод класса в отдельном потоке из другого метода этого же класса, без использования static?
Аноним 31/05/17 Срд 01:13:41  998890
>>998888
змейку небось пишешь?
Аноним 31/05/17 Срд 01:14:26  998892
>>998890
Нет.
Аноним 31/05/17 Срд 01:26:16  998901
>>998888
Я потратил немало времени, и нашёл способ только костыль использовать. При создании треда через WinAPI точно ты ему передаёшь параметр в виде void*. Я в качестве аргумента использовал this, а функцию вообще вынес за класс.
Аноним 31/05/17 Срд 02:21:56  998908
>>998815
У контейнеров Qt есть метод .value, который возвращает значение по-умолчанию в случае отсутствия записи в контейнере. Семантика передачи значения по-умолчанию там копирующая, поэтому будет вызван копирующий конструктор или присваивание. Если бы был метод с семантикой передачи rvalue-значения по-умолчанию, тогда, при наличии перемещающего конструктора или/и присваивания, при передаче временного объекта вызывался бы этот метод.

>>998717
Сырое я могу и через c-функции написать, только стало ли удобнее сереализовать целый объект при помощи метода write. Я так не думаю. Классов для работы с исключительно бинарными данными нет.

Аноним 31/05/17 Срд 02:29:32  998909
>>998888
Кто тебе запретит?
Аноним 31/05/17 Срд 02:35:49  998910
download.png (124Кб, 1391x598)
>>998888
Это ты?
Аноним 31/05/17 Срд 03:47:32  998918
>>998423
Переустанови виндовс. Виндовс сама не переустановится. Переуставнови её сейчас. Переустанови её ещё раз. Поставь раком и опять переустанови.
Аноним 31/05/17 Срд 03:57:18  998920
>>998901
Знаете, что такое лямбда-функция?! Прекрасное расширение языка. Аллах акбар!
В void он кастует, ну как-же. А потом, поди dynamic_cast-ом получаешь указатель на нужный объект.
Аноним 31/05/17 Срд 10:31:07  998971
https://pastebin.com/FjFEtd42
Ломается после надписи сломайся здесь. Как это вообще возможно?
Down это массив указателей на тот же тип, что и сам Tree_node_source.
Valgrind выдает в следующей строке
Conditional jump or move depends on uninitialised value(s)
Н = 1 в момент поломки. Хотя до этого н = 0 не было равно. Но во многих местах такая же конструкция с фор и все работает.
Как думаете, в чем может быть дело?
Аноним 31/05/17 Срд 10:33:05  998972
>>998971
Ой, нет, ошибка. Это размер вектора(кстати, это вектор, а не массив) = 1.
Аноним 31/05/17 Срд 10:33:32  998973
>>998972
>вектора Down
Фикс еще один
Аноним 31/05/17 Срд 12:03:17  999036
>>998910
Нет.
Я вообще редко вопросы задаю, и обычно нахожу в гугле, а если не нахожу, то спрашиваю в /pr.
Аноним 31/05/17 Срд 12:04:02  999038
>>998920
>Знаете, что такое лямбда-функция?!
Расскажи.
Аноним 31/05/17 Срд 13:21:24  999070
>>998920
reinterpret_cast
Аноним 31/05/17 Срд 14:00:52  999104
Слышал, что большие куски кода лучше выносить за рамки блока if, оставляя в нем лишь возврат в случае ошибки. типа не
if (b==a)
{
//500 строк кода
}
else return false;
а
if (b!=a)
return false;
//500 строк кода

Это как то связано с особенностями компиляции или просто делается ради повышения читаемости кода?
Аноним 31/05/17 Срд 15:12:12  999158
>>999104
Для повышения читаемости. return early pattern
Аноним 31/05/17 Срд 15:34:49  999172
https://pastebin.com/pfEukDRn назвать Tree.h
https://pastebin.com/eZMj2bqB файл с классом, назвать User.cpp
https://pastebin.com/ie3JY8z9 main-файл, я назвал Server.cpp
Это своебразная база данных. Все происходит в классе User. На вход подается команда (на вход в смысле явно прописывается в main), парсится, а затем выполняется. База данных имеет структуру дерева иерархии. То есть есть например
Россия Правительство Путин.
Здесь записью является только путин. У каждой структуры Tree_node( вершина дерева) есть пометка IsAHum_ которая показывает запись это или точка в дереве иерархии. Вектор Down в структуре это вектор со ссылками. map Work это набор данных, который должен быть только у записей. То есть у Путина есть, а у Правительства нет.
Теперь о проблеме.
По отдельности команда SELECT и PRINT работают. SELECT каждый раз ищет в резульате предыдущего поиска (SELECTа). Изначально за результат предыдущего поиска берется все дерево. Причем поиск производится по дереву иероархии. То есть можно выбрать все записи, которые входят в правительство по запросу:
SELECT Правительство
Обходом дерева получаются ссылки на все вершины дерева предыдущего поиска, имя которых равно поисковому запросу, после чего эти ссылки помещаются в вектор Down специального экземпляра структуры Tree_node Buf_, который является свойством класса User.
То есть происходит следующее
https://pastebin.com/M71AXcH7
Программа падает, когда мы пытаемся сделать PRINT после поиска, а именно в момент обхода вершины дерева Top_, а именно его вектора со ссылками Down.
То есть если попросить напечатать содержимое Top_ до поиска, то все будет ок, такк как там просто копия всего дерева, но если выполнить селект, а уже потом попытаться вывести все, то в файле User.cpp после строки 52, программа упадет. Не могу понять в чем дело.
https://pastebin.com/iduBst2c Файл с базой. Назвать Base.txt
Аноним 31/05/17 Срд 17:54:23  999262
>>998249
Проблемы вообще нет, оно работает.
Проблема в сканф проявится только с большими числами.
Аноним 31/05/17 Срд 18:02:37  999282
>>998888
Запросто, только снихронизацию не забудь сделать.
Аноним 31/05/17 Срд 18:04:47  999286
Смотрю, уже гет скоро будет. Кто решил брать?
Аноним 31/05/17 Срд 18:05:38  999289
programmer.jpg (31Кб, 317x372)
>>999286
Предлагаю нового маскота
Аноним 31/05/17 Срд 22:34:19  999421
2ch, я не могу понять, почему в char массив помещается русская C строка (char a[] = "Строка";) при кодировке UTF8? Проверяю каждый символ в массиве, он продолжает весить 1 байт, хотя исходя из UTF8 он должен весить 2 байта, в чём дело? Для этого же вроде нужен wchar_t, разве нет?
Аноним 31/05/17 Срд 23:17:44  999452
>>999282
Это понятно.

Спасибо.
Аноним 31/05/17 Срд 23:29:26  999457
В чём разница между reinterpret_cast<T>(value) и просто (T)value?
Аноним 31/05/17 Срд 23:49:46  999463
>>999457
>reinterpret_cast
Тем, что так не надо делать, например
Аноним 01/06/17 Чтв 00:13:05  999469
>>999463
Чому? Натыкался на мнение, что сишный каст ололо небезопасный и его аналогом является reinterpret_cast<T>()
Аноним 01/06/17 Чтв 00:48:02  999474
Меня тут ругают за использование realloc. А в чём собственно говоря проблема? Выделять новый кусок и туда копировать каждый раз через new/delete? - Зачем?
Что-то я побродил по сети, никакой аргументации не нашёл. Наоборот что-то про люниксы и хорошее быстродействие realloc, ну и не советуют одновременно new /malloc использовать.
Аноним 01/06/17 Чтв 01:23:23  999483
>>999469
Сишный каст - это не реинтерпрет каст, это примерно static_cast. reinterpret_cast - это смена типа без смены содержимого. Он должен использоваться только в платформозависимом коде для грязных трюков.
http://en.cppreference.com/w/cpp/language/explicit_cast
Дальше сам гугли.
>>999474
Проблема только в том, что перевыделенная память может иметь другой адрес со всеми вытекающими.
Аноним 01/06/17 Чтв 01:41:44  999487
>>999483
Как будто через new/delete адрес не может измениться. Глупости, значит.
Аноним 01/06/17 Чтв 07:12:51  999510
>>999172
Бамп вопросу, третий день сижу, не могу понять что происходит.
Аноним 01/06/17 Чтв 08:49:48  999529
>>999421
Это магия.
Аноним 01/06/17 Чтв 10:35:59  999543
>>999529
Так и знал что для двачедаунов компьютер это не более чем магическая коробка.
Аноним 01/06/17 Чтв 10:41:53  999547
>>999510
Выложи архивом, лень качать отдельно и переименовывать.
Аноним 01/06/17 Чтв 10:42:18  999548
>>999543
Если знал, то что спрашиваешь тут?
Аноним 01/06/17 Чтв 10:52:38  999552
>>999421
Где ты тут utf8 видишь?
Аноним 01/06/17 Чтв 10:58:34  999554
>>999547
Да, вот тар.
http://dropmefiles.com/049fT
Аноним 01/06/17 Чтв 13:25:11  999605
Такой вопрос.
После инжекта в процесс своей библиотеки и получения адреса функции, когда повесил хук на функцию, я могу вызвать в хуке оригинальную функцию, или будет вызвана уже хукнутая функция? Значит ли это, что нужно описать заранее оригинальную функцию и уже в хуке использовать её?
Аноним 01/06/17 Чтв 14:18:22  999622
>>999605
Обычно в теле функции, которой передается обработка, сначала вызывается оригинальная функция, а потом твои добавки в неё.
Аноним 01/06/17 Чтв 14:52:54  999635
>>999622
А, понял, все нормально значит.
Аноним 01/06/17 Чтв 15:05:16  999642
Читаю книжку из шапки ("Принципы и практика использования C++") и по мере прочтения накапливаются вопросы, на которые книга не даёт. Я их тут буду задавать партиями или сначала дочитать и попробовать всё до последней главы?
Аноним 01/06/17 Чтв 15:34:56  999648
>>999642
Задавай
Аноним 01/06/17 Чтв 20:35:48  999776
image.png (14Кб, 262x363)
image.png (15Кб, 391x355)
image.png (19Кб, 370x360)
Аноны, нужна ваша помощь. Решил я запилить игруху в консольке, типа файтинг.
Пока что только познаю ООП и у меня возникла проблема. Мой друган, который шарит в C#, рассказал мне, что в С++ можно делать переопределение функции.

Итак, у меня есть один базовый класс Player, в котором есть функция Attack() {}, а также есть два производных класса Knight и Wizard. У этих производных классов тоже есть функция Attack, в которой выводится пока что просто сообщение о том, что они таки нанесли урон. Вобщем нужно сделать так, чтобы в зависимости от созданного класса игрока (рыцарь или маг), вызывался нужный производный класс класса Player. То есть я создаю объект класса Player, но связанный с определенным производным классом, затем вызывается функция Battle для нужного производного класса. И если я выбрал рыцаря, то выводится сообщение для рыцаря, и так же для мага.
Аноним 01/06/17 Чтв 21:34:22  999803
>>999554
>>999172
Анончики, ну че, не понятно что там не так?
Аноним 01/06/17 Чтв 21:41:28  999805
>>999776
http://www.cplusplus.com/doc/tutorial/polymorphism/
Аноним 01/06/17 Чтв 21:47:20  999808
>>999805
Можешь вкратце объяснить? Просто мой ингриш не настолько крут, чтобы статейки специализированные читать
Аноним 01/06/17 Чтв 21:48:29  999809
>>999776
>создаю объект класса Player, но связанный с определенным производным классом, затем вызывается функция Battle для нужного производного класса. И если я выбрал рыцаря, то выводится сообщение для рыцаря, и так же для мага.
Ты или делаешь два разных класса наследованные от игрока с разными функциями, или если ты хочешь именно один класс с разными в зависимости от инициализации функциями, то включи в свой класс ещё одно поле-подкласс или указатель на функцию, которой и будут различаться твои player-объекты после инициализации.
Аноним 01/06/17 Чтв 22:01:35  999816
>>999803
Это пиздец, а не код.
Аноним 01/06/17 Чтв 22:03:17  999817
>>999816
Сорри, я пока только учуссь, скажи что не так, перепишу получше. Алсо есть более чистая версия без отладочных выводов.
Аноним 01/06/17 Чтв 22:04:40  999820
>>999817
Начнём с того, что ты сохраняешь в вектор адреса локальных переменных.
User::Select(Tree_node Top_node_source, string Rule)
{
...
Buf_.Down.insert(Buf_.Down.end(), &Top_node_source);
...
}

Дальше разгребать скучно.
Аноним 01/06/17 Чтв 22:07:36  999821
>>999820
Ага, ну да, ошибка, странно что прога падает именно тут, но сейчас попробую поправить.
алсо подскажи, как писать лучше?
Аноним 01/06/17 Чтв 22:25:26  999830
>>999808
Код после Virtual members.
Лучше бы ты с жабы начал. Без системы в крестах можно мозг сломать.
Аноним 01/06/17 Чтв 22:53:55  999843
>>999809
>>999830
Все, разобрался, спасибо. Ну там конечно и синтаксис с этими ебучими указателями. Ваще не представляю, как мне их понять
Аноним 01/06/17 Чтв 23:11:54  999847
>>999843
Ищи информацию, в интернете на русском всё есть. Не пытайся понять сам.
Аноним 02/06/17 Птн 00:20:58  999870
Я знаю, что вам похуй, но и мне похуй на то, что вам похуй.
Написал я тут дипломчик, описываю прогу разработанную, а из глаз кровища льётся. Это такой пиздец, что его людям показывать стыдно. Жуть, просто жуть
Аноним 02/06/17 Птн 00:48:35  999881
>>999487
Поздравляю, теперь тебе нужно не только уметь создавать/удалять объект, но ещё и уметь ресайзить его. И объекты бывают посложнее, чем массивы чаров.
>>999843
Тебе будет понятнее, если сказать тебея, что указатель - это то же самое, что адрес? И чло сложение числа с указателем - это указатель, сдвинутый на это число позиций относиттельно его типа? Что там понимать-то?
Аноним 02/06/17 Птн 01:36:10  999895
Двач, эта сука меня заебала. Хочу считать бинарный файл в char, но внезапно, ебучий ifstream отказывается читать после первого нулевого байта, несмотря на то, что я явно указываю размер который определен верно через тот же ifstream в ifstream.read(). Разумеется там есть нулевые байты, это же кусок .exe файла. Короче, как мне полностью запихать в char содержимое бинарного файла, а не до 1 нуля? Там предлагают шаманские методы через string, но звучит и пахнет как костыль.
Аноним 02/06/17 Птн 02:06:13  999900
>>999895
Открой файл в с флагом binary, перейди в конец файла, узнай позицию, вернись в начало файла, выдели память, считай файл через read. Вроде должно работать.
Аноним 02/06/17 Птн 02:35:36  999905
>>999821
Что-то я устал от назойливых новых ньюфагов.
Аноним 02/06/17 Птн 13:16:05  1000024
>>996619 (OP)
Вопрос с++ господам.Есть задача про уравнение двух чисел джвумя заранее заданными операциями(Если это возможно). Как уравнять пару, еще более-менее понятно, но как определить неуравниваемую пару чисел?
Код здесь http://ideone.com/e9J0WG
Условие здесь:

Результатом применения операции 1 к паре натуральных чисел (a, b) является пара натуральных чисел (a+1, 2×b). Результатом применения операции 2 к паре натуральных чисел (a, b) является пара натуральных чисел (2×a, b+1).
Требуется за как можно меньшее число шагов с помощью операций 1 и 2 получить из пары (X, Y) пару равных чисел.

Результат записать как последовательность из единиц и двоек. Если "уравнять" данную пару невозможно, вывести 0.
Аноним 02/06/17 Птн 15:05:59  1000065
image.png (33Кб, 490x488)
image.png (14Кб, 501x135)
>>999648
1.
В книжке показали классы и сказали несколько интересных слов, я не мог не заинтересоваться и даже забил бы на них до главы про классы, но в результате экспериментов получил ненароком такое. Картинка. То есть я беру указатель на класс, выделяю под него память и явно вызываю конструктор (Хрен его знает как там это правильно сделать, написать q->my(); оно мне не позволяет, да и может быть конструкция q=my() уже сама по себе выделит память (хотя в этом случае я достиг падения программы, в отличие от способа с malloc), я пока с этим не разбирался и разберусь потом. Суть в другом.). И потом в коде обращаюсь к массиву в классе. Только вот судя по консоли у меня деструктор вызывается раньше этого обращения. Какого чёрта он там вызывается?
2.
Если в самом начале я напишу просто my q;, то всё работает корректно, деструктор вызывается после моего обращения.
Возникает вопрос, а как тогда объявить переменную-класс не вызывая конструктор вообще? По запросу "Как не вызывать неявно конструктор по умолчанию при объявлении класса?" ничего найти не могу. Вот я просто хочу объявить класс - то есть иметь переменную с нужными мне полями и вручную с ними работать внутри функции не вызывая конструктор вообще - как мне это сделать?
3.
В си структуры были. Я слышал, что в с++ теперь можно методы в структурах делать, так и оказалось. Предположил что структуры тем и отличаются, что у них конструктор не будет вызываться. Ан нет, абсолютно аналогично работает. В чём тогда различие структур и классов ныне? Тоже не могу нигде найти.
Аноним 02/06/17 Птн 16:04:58  1000099
>>1000065
Первая картинка: my() - это конструирование временного объекта. Оператор = вызывает либо move constructor (если стандарт 11+. Деструктор не вызывается) либо copy constructor (похоже на твой случай). Память освобождается, в *q остаётся неправильный указатель, ты разъебошил ногу.

Если ты хочешь присваивать объекты с указателями, тебе нужно сбацать правильный copy constructor и move constructor.

>Возникает вопрос, а как тогда объявить переменную-класс не вызывая конструктор вообще?
Ты пытаешься выстрелить себе в ногу. Если ты хочешь, чтобы при создании переменной ничего не происходило, просто объяви пустой конструктор (или оставь дефолтный). RAII, парень.

3. Структуры отличаются только тем, что в них все члены public.
Аноним 02/06/17 Птн 16:07:06  1000101
Олсо, дефолтные конструкторы перемещения и копирования определяются компилятором не всегда.

http://en.cppreference.com/w/cpp/language/move_constructor
http://ru.cppreference.com/w/cpp/language/move_constructor
http://en.cppreference.com/w/cpp/language/copy_constructor
http://ru.cppreference.com/w/cpp/language/copy_constructor
Аноним 02/06/17 Птн 16:36:23  1000111
>>1000099>>1000101
Понятно, спасибо.
>RAII
А удобно на самом деле, пусть не совсем очевидно.
Аноним 02/06/17 Птн 18:25:53  1000162
>>1000065
1. malloc только выделяет память указанного размера, но не вызывает конструктор, если хочешь пердолинга, то делай placement new, например: http://ideone.com/wdHEjl
А лучше всего делать стандартными средствами при помощи new и delete, а еще лучше использовать умные указатели.

2. То, как ты это назвал, это называется выделение в "статической" области памяти, то есть по-факту структура описания самого объекта размещается в стеке, если же твой класс содержит поля, которые создаются в куче, то они будут созданы в куче, как бы ты этого не хотел. При выходе из области видимости переменной, размещенной в стеке, для нее вызывается деструктор, причем в порядке, обратном их декларации. То есть, например:

>> {
>> my a;
>> my b;
>> ...
>> }

Сначала будет вызван деструктор для b, затем для a. Это вполне логично.
Если ты создал объект в куче (при помощи new, например), тогда деструктор для фактического объекта вызван не будет, вызван будет (если это вообще вызовом можно назвать, по факту, просто указатель стека сместится или данные перезатрутся в зависимости от контекста) деструктор для переменной-указателя, а не на то, что она указывает. То есть в следующем случае:

>> my *a = new a();
Ты имеешь две сущности. Первая - переменная a, которая является указателем на объект в куче. вторая - непосредственно объект a в куче. При выходе a из области видимости будет вызван деструктор именно для ПЕРЕМЕННОЙ-УКАЗАТЕЛЯ, а НЕ для ОБЪЕКТА. Поэтому, если ты не передал куда-то указатель для дальнейшего использования или не вызвал delete вручную, тогда, поздравляю, ты проебал память.

3. Различие структур между c и c++ состоит в том, что в обычном c кроме членов-данных ничего в структуру затолкать нельзя. В лучшем случае, если ты захочешь сотворить подобие какого-то класса, тебе будет создать члены-данные, являющимися указателями на соответствующие функции. Получится своеобразный виртуальный класс. На деле так делают изредка и просто прибегают к созданию заковыристых имен для функций на все случаи жизни. Алсо в цэ ты можешь при инициализации структуры указывать названия заполняемых полей явно, например:

>> struct my_struct s = { .param_a = 1, .param_b = "char str" ... };

В крестах такую хуйню не провернешь уже, потому что, как говорят старики из комитета, нахуя вам такой синтаксис, если родина дала конструкторы.
В крестах же отличие структуры от класса минимально и заключается лишь тем, что по-умолчанию в структуре все члены открытые (являются public), в то время, как в классе они по-умолчанию private. Деструктор, конструктор, если они не объявлены, генерируются автоматически, как, впрочем, и некоторые другие конструкторы и присваивания (но там есть множество исключений).
Алсо при объявлении шаблонов ты можешь использовать только ключевое слово class или typename, хотя это никакого отношения к структурам, фактически, и не имеет.

Аноним 02/06/17 Птн 19:09:25  1000168
Снимок.PNG (57Кб, 1361x543)
Дроч, почему каждый раз программа отрабатывает вплоть до return в main() без нареканий, а потом тут же хуйня пикрелейтед?
Аноним 02/06/17 Птн 19:12:23  1000169
>>1000168
всё, нашел. это я чедух, удалял указатель, для которого не выделена память.
Аноним 02/06/17 Птн 20:30:41  1000203
Есть ли объяснение TSP https://en.wikipedia.org/wiki/Travelling_salesman_problem для крестов по русски? Мне туго в англ.
Аноним 02/06/17 Птн 20:31:39  1000205
>>1000203
А не не. Уже нашел
Аноним 02/06/17 Птн 20:48:31  1000216
Переменная это проименованная область памяти, у меня вопрос, где хранится имя самой переменной и где хранится адрес к которому привязана переменная?
Аноним 02/06/17 Птн 21:05:04  1000224
>>1000216
>где хранится имя самой переменной
Нигде. После компиляции имя переменной не имеет смысла. Если язык интерпретируемый, то это уже по его усмотрению в какой-нибудь хеш-таблице, скорее всего.
Аноним 02/06/17 Птн 21:59:03  1000241
>>1000216
>де хранится имя самой переменной
В компиляторе.
>где хранится адрес к которому привязана переменная?
В коде программы.
Аноним 02/06/17 Птн 22:53:40  1000254
Какой же code::block убогий. Зачем вообще за него сел.
Аноним 02/06/17 Птн 23:27:41  1000268
>>1000216
>Переменная это проименованная область памяти
Это тебе училка по информатике сказала?
Аноним 03/06/17 Суб 04:25:32  1000314
image.png (12Кб, 413x131)
Второй вариант через ссылку - наиболее короткий способ сделать сие извращение?
Аноним 03/06/17 Суб 08:47:03  1000327
В универе стоит люто настроенный компилятор, который не хочет пропускать функцию stoi.<string> подключен, он просто требует, чтобы было объявление этой функции. Что нужно сделать, чтобы прога скомпилировалась.
Аноним 03/06/17 Суб 11:25:25  1000353
>>1000327
using namespace std;
Аноним 03/06/17 Суб 11:41:45  1000357
>>1000353
Как изменить максимальное значение для RAND_MAX? Мне нужно увеличить потолок, получаемый через rand().
Простой #define RAND_MAX 0xFFFFFFFF даст нужный результат?
Аноним 03/06/17 Суб 11:56:22  1000363
Как запилить двухмерный динамический массив?
Аноним 03/06/17 Суб 12:07:08  1000367
>>1000357
Ты можешь в заголовочном файле библиотеки поменять. Но никаких гарантий, что что-то поменяется или rand после этого будет работать стабильно.
Если компилятор поддерживает C++11, то попробуй это.
http://ru.cppreference.com/w/cpp/numeric/random/uniform_int_distribution
Аноним 03/06/17 Суб 12:17:16  1000370
>>1000363
https://stackoverflow.com/questions/1403150/how-do-you-dynamically-allocate-a-matrix
Аноним 03/06/17 Суб 12:53:44  1000379
>>1000370
Спасибо
Аноним 03/06/17 Суб 12:53:49  1000380
>>1000353
Прописано было.
мимо_автор_оригинального поста
Аноним 03/06/17 Суб 13:06:18  1000382
#include <iostream>
#include <cmath>

using namespace std;

int main()
{
setlocale(LC_ALL, "Russian");
int ptrx = NULL, ptry = NULL;
int bdxy = NULL;
//int x[100]; Ненужное
//int y[100];
//int rsg[100];
int n, i, rst, grr;
cout<<"Сколько пунктов "<<endl;
cin>> n;

ptrx= new int[n];
ptry= new int[n];

bdxy= new int*[n];
for(i=0; i<n; i++){
bdxy= new int[n];
}

for(i=1; i<=n; i++){
cin>> ptrx >> ptry;
}

for(i=0; i<=n; i++){
for(grr=1; grr<=n; grr++){
rst = abs(ptrx[grr]-ptrx)+abs(ptry[grr]-ptry);
cout<< i <<" и "<< grr <<" равно "<< rst <<endl;
bdxy[grr] = rst;
}
rst = abs(ptrx[i+1]-ptrx)+abs(ptry[i+1]-ptry);

}



cout<<endl;

for (i=0; i<n; i++){
for(int j=0; j<n; j++){;
cout<<" "<<bdxy[j];
}
cout<<endl;
}

delete []ptrx;
delete []ptry;
for(int count=0; count<2; count++){
delete []bdxy[count];
}

return 0;
}

Закрывает программу не окончив её. Это задача коммивояжёра, только там даются координаты и формула для расчета расстояние между городами по координатам.

В чем ошибка?
Аноним 03/06/17 Суб 13:16:29  1000387
>>1000382
Этот функционал появился в версии C++11. Адекватного способа добавить это в отсталый компилятор нет.
Аноним 03/06/17 Суб 13:17:28  1000388
>>1000380 -> >>1000387

>>1000382
Залей куда-нибудь код (ideone), может кто-нибудь захочет покопаться.
Аноним 03/06/17 Суб 13:40:01  1000406
>>1000388
Я уже решил. Там наверно mingw ебнулся и не принимал <= в цикле, для ввода в матрицу значений.
Аноним 03/06/17 Суб 13:48:16  1000409
>>1000387
То есть нужно либо самому в код добавить такую функцию?
Аноним 03/06/17 Суб 13:50:37  1000411
>>1000327
Так, СТОП. Тебе не <string> нужен, а <cstring>
Аноним 03/06/17 Суб 13:58:39  1000414
>>1000314
Гугли про strict aliasing
Аноним 03/06/17 Суб 14:12:30  1000426
>>1000411
Подключено.
Аноним 03/06/17 Суб 15:13:04  1000465
Nearestneighbor.gif (662Кб, 393x287)
Как реализовать норамльный поиск?
Аноним 03/06/17 Суб 15:54:52  1000486
>>1000465
Реализации и алгоритмы есть в интернете. В общем случае это какая-то разновидность перебора, т.к. задача коммивояжера - NP-трудная.
CMake Аноним 03/06/17 Суб 16:35:45  1000493
Программач, не могу осилить это говно. Вроде C++ тред как раз для этого подойдет.

Так вот, какие-то сабпроекты - вообще охуеть, сам синтаксис пиздец. Я думал что посмотрю на гитхабе как делают все, а хуй там, костыли какие то.

Непонятно вообще, прямые пути писать в CMakeLists для каждого файла в корне проекта, или эти add_subdirectory использовать. И как их линкать между собой.

Помоги определиться с написанием с правильного CMake для проекта такой структуры:
/Project
- CMakeLists.txt
- /res
-- project.cpp
-- project.hpp
-- resources.hpp
- /src
-- app.ico
-- project.manifest
-- resources.rc
Аноним 03/06/17 Суб 19:01:24  1000542
>>1000493
Что-то вроде этого, не проверял, может накосячил где
https://pastebin.com/E7MpKcp7
Аноним 04/06/17 Вск 03:27:41  1000747
image.png (35Кб, 792x418)
>>1000414
Ужасы то какие.
>>999648
4. Дочитал до перегрузки операторов. Вот глядя на эти оптимизации компилятора, если я перегружаю, для примера, "+", есть гарантии, что компилятор не поменяет местами операнды?
5. inline. Я могу его прикрепить в объявлении, в определении или сразу в двух местах, любая комбинация ошибок не выдаёт. В каких из четырёх вариантов этот модификатор применяется?
6. Список инициализации. В этот список можно засовывать чёрт-знает что. То есть по сути это просто более краткая запись того, что я изобразил ниже обведённое красным?
Аноним 04/06/17 Вск 04:18:15  1000749
>>1000747
4. Компилятор никогда не меняет местами операнды (т.е. справа налево). Компилятор лишь может поменять порядок вычисления.
5. Если объява и тело в одном файле, пофигу, куда писать. Если писать инлайн в заголовке для скомпиленой либы, наверняка будет ошибка (ты предлагаешь компилятору инлайнить то, для чего нет исходника).
6. Для POD-типов список инициализации будет именно aggregate-инициализацией (пришедшей из C, это часто in-place конструирование). Обведённое красным может быть конструированием временного объекта (грамматически это std::initializer_list (название похоже на то, про что ты спрашиваешь, но это совсем другое), из которого конструируется объект нужного типа) и копированием/перемещением оного. Вообще говоря компилятору дозволено вызвать in-place конструктор в обоих случаях, но умеют ли они анализировать частный случай ради копеечной выгоды? Вряд ли.

Очевидно, что в случае с int это похую. В общем случае списки инициализаций предпочтительнее. Тело вообще может быть пустое.
Аноним 04/06/17 Вск 04:46:52  1000751
4. Порядок вычисления - это если на одном уровне операндов есть вызовы функций. Порядок применения операторов точно определён (associativity).
Аноним 04/06/17 Вск 08:37:44  1000760
Как правильно подключать инклуды?
Видел кучу разных способов, кто-то подключает все в main.h, а сам main.h в main.cpp. Кто-то во всех .h и в main.cpp подключает main.h, а потом эти .h уже подключают в .cpp.
Аноним 04/06/17 Вск 13:19:02  1000815
Уважаемые с++ знатоки, вопрос задает аноним из Мухосранска.
Есть один говнокод http://ideone.com/A0jPgw. Работает правильно, но неоптимально. Как его можно оптимизировать?
Суть задачи: На вход подаются строки, а выдать мы должны либо "ОК", если строка встречается впервые, либо эту же самую строку и число(Сначала 1, потом 2, потом 3 и так далее)
Пример:
Ввод:
А
А
B
C
Вывод:
OK
A1
OK
OK
Да, я знаю, что это можно сделать без класса, но мне надо с классом
Аноним 04/06/17 Вск 14:11:09  1000847
>>1000815
Строки загоняешь в словарь. Сама строка- ключ, значение по этому ключу - количество раз сколько эта строка встречалась.
Аноним 04/06/17 Вск 14:46:16  1000869
>>1000815
Есть такой контейнер. Map называется.
Аноним 04/06/17 Вск 14:50:05  1000871
>>1000847
>>1000869
Спасибо, буду гуглить
Туда ведь можно этот класс вкорячить? Мне просто необходимо именно написать класс для хранения этой инфы
Аноним 04/06/17 Вск 14:53:44  1000875
>>1000871
Зачем тебе вкорячивать свой класс в контейнер общего назначения? Ты упорот?
Аноним 04/06/17 Вск 14:56:11  1000878
>>1000875
Преподы мои упороты
> Разработайте класс, для хранения информации о зарегистрированных пользователях.
Аноним 04/06/17 Вск 15:03:58  1000885
>>1000878
Стоит уточнить упоротость преподов. Может оказаться, что map нельзя использовать.
Аноним 04/06/17 Вск 15:06:02  1000889
>>1000885
Про контейнеры не сказано ничего, следовательно разрешены, и map в том числе, я полагаю
Вообще говоря, решение такой задачи не требует и контейнеров и вообще занимает шесть строк, но вот эти ограничения... Зачем?
Аноним 04/06/17 Вск 15:08:55  1000890
>>1000889
Я бы хотел увидеть эти 6 строк, но вижу только ошибку 404.
Аноним 04/06/17 Вск 15:10:49  1000892
jdHylblvgw.jpg (23Кб, 816x131)
>>1000890
Каюсь, шесть строк -- это с мапом. Но все равно, зачем сюда вкорячивать класс -- неясно
Аноним 04/06/17 Вск 15:14:36  1000893
>>1000890
А, блин, только сейчас заметил, что код уже . Вот что я напердолил с классом
http://ideone.com/8aXkqL
Аноним 04/06/17 Вск 15:17:17  1000895
>>1000890
>>1000892
>>1000885
>>1000875
>>1000869
Господа, а если реализовать класс с одним-единственным публичным полем -- ником и реализовать все через мап, но вместо строки используя созданный класс. Взлетит?
Аноним 04/06/17 Вск 15:25:13  1000897
>>1000895
А чем тебя твоя реализация не устраивает? Все методы find() делают то же самое, ты просто пользуешься уже готовой реализацией.
Аноним 04/06/17 Вск 15:28:30  1000898
>>1000897
Лично меня моя реализация устраивает всем. Проблема в том, что на большом тесте (98532 строк) она не укладывается в лимит по времени (лимит -- 1 секунда)
Аноним 04/06/17 Вск 15:30:11  1000899
>>1000878
> Преподы мои упороты
Скорее всего это ты упорот немного. Тебе нужен класс для хранения информации о зарегистрированных пользователях, а не класс для храненения имени пользователя. Тоесть тебе нужен класс с методами (к примеру): add(std::string name) и count(std::string name). Можно сделать чтобы add заодно еще и возвращал сколько раз встречается добавленное имя. Алсо add лучше назвать push_back (для большего подобия с stl), но это по желанию, смотря насколько ты себя дерзким парнем позиционируешь.
Аноним 04/06/17 Вск 15:32:38  1000901
>>1000898
Попробуй isThere модификатор inline заебашь.
Аноним 04/06/17 Вск 15:37:28  1000903

>>1000899
> Тебе нужен класс для хранения информации о зарегистрированных пользователях, а не класс для храненения имени пользователя.
Просвети нуба, пожалуйста, а поля ему какие нужны?
>>1000901
> inline
Ускорило, но на три сотых секунды. Надо выгадать еще 0,067 хотя бы
Аноним 04/06/17 Вск 15:39:06  1000905
>>1000903
>на три сотых секунды
Гулять как гулять! Хуячь __forceinline!
Аноним 04/06/17 Вск 15:43:11  1000909
>>1000898
Проблема твоей реализации что у тебя для подсчета количества строк просматриваются все 98532. А, к примеру, для варианта с словарем для ста тысяч строк будет просмотрено не больше 17 элементов - так как там логарифм. Твой алгоритм можно немного модифицировать отсортировав массив с строками, и используя бинарный поиск - эффективность будет как у словаря. Но остается проблема с заполнением словаря, если строки тебе не выдаются сразу пачкой - тебе прийдется пересортировывать массив после каждого добавления. Даже если использовать сортировку вставками, которая для такого случая (вставка одного элемента в же отсортированый массив) очень удобна - все равно нужно сдвигать элементы в массиве. Тоесть добавление каждой новой строки - линия. Тогда как в словарь - логарифм.
Аноним 04/06/17 Вск 15:45:43  1000910
>>1000905
Так оно не компилится.
Или я не туда пишу?
__forceinline int isThere (int n, int curPos, username * base){
int c = 0;
for(int i = 0; i < n; i++)
if(base[curPos].nick == base.nick)
c++;
return c;
}
>>1000909
Понял, примерно, буду гуглить
Аноним 04/06/17 Вск 15:50:34  1000912
>>1000903
> поля ему какие нужны
Необходимый минимум - контейнер для строк. Тот же словарь, например. Или свой велосипед. Ну а так добавить можно еще что-то, например количество запомненых строк. Единственно правильного варианта нет. Нужно отталкиваться от сценариев использования твоего класса.
Аноним 04/06/17 Вск 15:52:33  1000914
>>1000912
То есть, как минимум map<string, int> и еще один int? Понял, пойду пердолить
Аноним 04/06/17 Вск 16:03:42  1000918
>>1000898
Замени на std::unordered_map
Аноним 04/06/17 Вск 16:24:08  1000930
>>1000918
>>1000912
>>1000905
>>1000899
>>1000890
>>1000847

Господа, всем огромная благодарность, но послушал я вас лишь отчасти. Зашло вот это: http://ideone.com/innaMF Оцените по шкале от индуса до Линуса Торвальдса?
Аноним 04/06/17 Вск 16:25:16  1000932
>>1000910
Что за хуйню ты напрограммировал. У тебя линейный поиск идет, в то время, как по-хорошему надо логарифмический сделать с исопльзованием std::set или std::map, например.
Аноним 04/06/17 Вск 16:27:16  1000934
>>1000932
Надо, но я же нуб, так что написал хуйню. Но оно же работало. Меня смущала необходимость написания именно класса, поэтому я высрал это
>>1000930
Аноним 04/06/17 Вск 16:53:47  1000947
>>1000760
>Как правильно подключать инклуды?
Что значит "правильно"?
Аноним 04/06/17 Вск 16:55:00  1000951
>>1000930
> от индуса до Линуса Торвальдса
Они друг от друга недалеко ушли. Оба не любят strict aliasing и обращаются к указателям до проверки их на NULL.
Аноним 04/06/17 Вск 17:06:32  1000954
>>1000951
Где ему тут проверка нужна?
>>1000930
Если в своей friend функции поменяешь значения на ссылки, то может получится ещё пару миллисекунд выиграть, но это не точно.
Аноним 04/06/17 Вск 17:07:15  1000955
>>1000954
>Где ему тут проверка нужна?
Я в общем говорю. Твой код не смотрел.
Аноним 04/06/17 Вск 17:08:20  1000956
>>1000955
А, жопой читаю, простите.
Аноним 04/06/17 Вск 17:11:26  1000957
>>1000954
> то может получится ещё пару миллисекунд выиграть
Возьму на вооружение, но все же я и так теперь управляюсь за треть секунды, мне хватит
Аноним 04/06/17 Вск 17:19:37  1000963
>>1000930
> username::username(string a){
> nick = a;
> }
username::username(string a) : nick(std::move(a)) {}
Аноним 04/06/17 Вск 17:22:54  1000965
>>1000930
> inline bool operator < (const username a, const username b){
> if (a.nick<b.nick)
> return 1;
> else return 0;
> }
Типичный boolshit.

inline bool operator < (const username a, const username b){ return a.nick<b.nick; }
Аноним 04/06/17 Вск 17:24:01  1000966
>>1000965
И как по твоему, сократит время выполнения?
>>1000963
Хотя в эффективность этого верю
Аноним 04/06/17 Вск 17:25:59  1000967
>>1000966
>Хотя в эффективность этого верю
Дело не в эффективности. Я почти уверен, что компилятор выдаст для твоего и моего варианта одинаковый код. Он не тупой и понимает, что `if (x == true) return true; else return false;` можно заменить на return x;
Аноним 04/06/17 Вск 17:29:41  1000970
>>1000967
Резонно
Аноним 04/06/17 Вск 17:54:32  1000987
>>1000963
>>1000966
В операторе >> я бы тоже использовал std::move для передачи строки в конструктор.
Аноним 04/06/17 Вск 18:00:10  1000990
>>1000947
Есть же наверное какие-то общие правила.
Аноним 04/06/17 Вск 18:04:21  1000992
>>1000918
Кстати, хорошая идея. Потому что в самом начале уже задается максимальное количество имен и можно выделить память для unordered_map-а (с учетом max_load_factor естественно).
Аноним 04/06/17 Вск 18:04:28  1000993
>>1000990
Думаю, нужно отталкиваться от того, что любой инклюд подставляет код в указанное место. Поэтому используй защиту от повторных инклюдов (#pragma once или комбинации #ifndef ANY_KEYWORD #define KEYWORD #endif, смотря каким компилятором пользуешься), разделяй реализацию класса и заголовочный файл класса, чтоб меньше кода подставлялось, это уменьшит время компиляции. Все статические инклюды то, где ничего не меняется, всякие <iostream>, <string>, <Windows.h> выдели в один отдельный заголовок, сделай его предкомпилированным, а всем остальным .cpp файлам прикажи использовать этот предкомпилированный заголовок, это тоже уменьшит время компиляции. Хотя всё это имеет значение на очень больших проектах, там будет ощутимо, когда компиляция занимает по 10-30 секунд.
Смотри, чтоб не было рекурсивных инклюдов, когда A.h включает B.h И B.h включает A.h
Аноним 04/06/17 Вск 18:23:30  1000999
Классно угораете.
>>1000878
Какая часть цитаты подразумевает запихивание твоего класса в map? Что именно преподы хотят видеть в классе - хранение строки (лолчто? Лолнахуй?) или считывание из cin?
Стоило бы спросить у преподов про то, что должен подерживать класс - копирование, exception safety, thread safety и, самое главное, цель запихивания в класс. Потому что, когда что-то запихивают в класс, это делают либо для автоматического управления ресурсами, либо для того, чтобы в этот класс пихать что-то индивидуальное, а задание - прочитать из cin, и он один на всю программу.
Подойди к заведующему кафедры и изложи упоротость препода. Считывание из cin и проверка на повторы с выводом результата - это одно действие, а не материал для класса.
>>1000892
Когда говорят о строках, говорят о строках читаемого кода - по статементу на строку.
>bits/stdc++
Совсем ебанутый.
>>1000930
Отлично, username - это чуть ли не один в один string. С таким же успехом мог сделать typedef string username
> string name;
> in >> name;
> a = username(name);
> return in;

in>>a.nick - нет? Слишком просто?
Аноним 04/06/17 Вск 18:26:47  1001002
Даже ещё лучше:
return in>>a.nick;
Аноним 04/06/17 Вск 18:55:25  1001024
>>1000993
Годно расписал, спасибо.
Аноним 04/06/17 Вск 19:02:09  1001027
>>1000999
> Какая часть цитаты подразумевает запихивание твоего класса в map? Что именно преподы хотят видеть в классе - хранение строки (лолчто? Лолнахуй?) или считывание из cin?
> Стоило бы спросить у преподов про то, что должен подерживать класс - копирование, exception safety, thread safety и, самое главное, цель запихивания в класс. Потому что, когда что-то запихивают в класс, это делают либо для автоматического управления ресурсами, либо для того, чтобы в этот класс пихать что-то индивидуальное, а задание - прочитать из cin, и он один на всю программу.
> Подойди к заведующему кафедры и изложи упоротость препода. Считывание из cin и проверка на повторы с выводом результата - это одно действие, а не материал для класса.
Честно скажу -- мне плевать. Мне нужно было пройти тесты и написать какой-никакой класс. Так что ну их, эти костыли, да и скорее всего, это никто и читать не будет
>>1001002
> Даже ещё лучше:
> return in>>a.nick;
А вот это классно, спасибо, возьму на вооружение
Аноним 04/06/17 Вск 19:18:53  1001033
Чё пацаны, упарываетесь, когда работаете?
Аноним 04/06/17 Вск 21:36:19  1001103
Можно ли каким-нибудь образом определить какая из перегруженных функций была использована или будет использована?
Аноним 04/06/17 Вск 22:06:17  1001118
>>1001103
Дебагером, отладочными трейсами
Аноним 04/06/17 Вск 22:11:10  1001122
>>1001118
Как?
Аноним 04/06/17 Вск 22:24:54  1001127
>>1001122
внутри перегруженной функции вывести текст вида "peregruzenaya funkciya"
Аноним 04/06/17 Вск 22:34:17  1001129
>>1001127
Мне нужно библиотечные функции определить, не мои.
Аноним 04/06/17 Вск 22:57:11  1001132
>>1001129
в режиме отладки посмотреть стек вызовов
Аноним 04/06/17 Вск 22:58:29  1001134
>>1001129
Во - гугло ссылка https://www.google.com.ua/search?q=%D1%81%2B%2B+%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C+%D1%81%D1%82%D0%B5%D0%BA&oq=%D1%81%2B%2B+%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C+%D1%81%D1%82%D0%B5%D0%BA&aqs=chrome..69i57.4596j0j7&client=ubuntu&sourceid=chrome&ie=UTF-8#q=%D1%81%2B%2B+%D0%BA%D0%B0%D0%BA+%D0%BF%D0%BE%D1%81%D0%BC%D0%BE%D1%82%D1%80%D0%B5%D1%82%D1%8C+%D1%81%D1%82%D0%B5%D0%BA+%D0%B2%D1%8B%D0%B7%D0%BE%D0%B2%D0%BE%D0%B2
Аноним 04/06/17 Вск 23:43:32  1001174
>>1001134
>>1001132
Там нету информации о том какую библиотечную функцию я использую. Там просто показываются только мои функции.
Аноним 05/06/17 Пнд 04:39:15  1001232
>>1001174
Когда доходишь до вызова делай принудительный вход в вызываемую функцию (Force Step Into) и смотри стек вызовов. Название вызванной функции будет в стеке вызовов.
Аноним 05/06/17 Пнд 11:53:07  1001303
Дайте советов мудрых по opencv. Нужно с помощью неё научиться в течении месяца это чтобы не примали меня за студента с горящей жопой распознавать изображение с камеры таким образом, чтобы ориентироваться на местности. Реквестирую постепенный план, по которому процесс будет происходить.
Аноним 05/06/17 Пнд 12:20:08  1001316
>>1001303
В машоб-тред проследуй.
Аноним 05/06/17 Пнд 13:35:05  1001352
>>1001316
Ты не понял. Тут алгоритмы нужны, чтобы на картинке, к примеру, 800x600 вычислить яркие цвета, отличающиеся друг от друга. Пусть это будут красные квадраты. Найти их центр масс. Далее вычислить до них расстояние через известные величины. Это задача, и никакого ML не требуется.
Аноним 05/06/17 Пнд 14:23:49  1001365
>>1001352
Ну я тебе могу ссылок из гугла покидать на запросы "opencv color detection" и "opencv figure detection".
http://opencv-srf.blogspot.com.by/2010/09/object-detection-using-color-seperation.html
http://www.pyimagesearch.com/2016/02/08/opencv-shape-detection/
https://stackoverflow.com/questions/11424002/how-to-detect-simple-geometric-shapes-using-opencv
Аноним 05/06/17 Пнд 14:41:32  1001371
>>1001370 (OP)
>>1001370 (OP)
>>1001370 (OP)
>>1001370 (OP)
>>1001370 (OP)
перекот
Аноним 05/06/17 Пнд 22:13:32  1001655
>>1000542
Т.е. >писать прямые для каждого файла в корне проекта ?
Спасибо, анон.
Аноним 06/06/17 Втр 05:26:21  1001797
>>998000

11. Одикостоящая цифра преобразовывается в тип класса, из за неявного преобразования. Конструктор, который принимает один аргумент типа, становится функцией преобразования из типа в аргумента в тип класса. поставь рядом с конструктором explicit один "d" пропадет.
Аноним 06/06/17 Втр 05:30:52  1001800
>>998000
7. Новый объект класса инициализаруется уже существующим объектом класса, чистой воды контактор копирования.
Что тебя смущает ?
Аноним 06/06/17 Втр 05:31:38  1001801
>>1001800
Конструктор копирования, пардон.

Самофикс.
Аноним 06/06/17 Втр 05:45:22  1001802
>>1001797
Точнее d не пропадет у тебя будет что то типо "нету преобразования из int в тип А". Ошибка компиляции будет.

Вопрос отдельный : Как ты так хитро вызываешь f() ? она ведь метод класса, а операция членства не задействована (c.f(3) например).

[Назад][Обновить тред][Вверх][Каталог] [Реквест разбана] [Подписаться на тред] [ ] 678 | 50 | 180
Назад Вверх Каталог Обновить

Топ тредов
Избранное