Ананасы, есть один QVector<SomeObject>. Мне необходима часть его данных (причём эта часть непрерывна). Как получить часть данных не копируя их? Либо можно как-то узнать количество элементов между текущим итератором и end()?
Где вообще искать варианты стажировки или подобного? Хочу получать опыт и хоть какие-то более-менее реальные задачи решать, но на всяких hh.ru 3,5 вакансии :с
>>932690 еще нет вообще, чекаю только неделю алсо, везде в обязательных требованиях идет хуетень типо "немного знай кресты, но, сука, умей в sql и js" хотя в вакансиях что-то вроде "стажер-разработчик (c++)"
>>932685 Делаешь вменяемое резюме, где у тебя будут очевидны зачатки интереса к крестоблядству. Мол буст трогал, QT. Какие-то свои пет хуйни, уровня СОРТИРОВКИ ПАПКИ ПО ТИПУ ФАЙЛА.
Рассылаешь его по всем компаниям подряд, где нет специфических требований уровня: >C++ Developer >... >Умение писать модули для ядра Linux.
Попадёшь на собеседование, где тебя будут мурыжить и доказывать, что ты нихуя не знаешь. Потом предложат ~30к рублей за 5/2. Отработай там, сколько хватит силы воли. Обычно в подобном дерьме всем похуй на твою реальную квалификацию, т.к. там 80% сотрудников - студенты. Поэтому в любом случае набьёшь руку на практике. Плюс увидишь как НЕ НАДО писать код, заодно сам такого говна напишешь.
После года опыта в позиции С++, если не будешь ебланить, то дальше будет сильно проще. После 2х годков уже HR сами будут тебе периодически спамить на почту. Ну и з.п. по ДС2 будет от 60к. По моему опыту 80к+
Главное не засиживаться в подобных конторах. И не переставать развиваться. В подобных местах у тебя будет достаточно времени, чтобы на рабочем месте пилить пет проект/читать проф лит-ру/учить алгоритмы/... .
Ну офк не позволяй себе выгореть, в подобной параше почти всегда аврал. Всё вечно течёт, падает, огромный тех. долг и прочие радости жизни.
>>932741 но я еще студента, поэтому ищу все же либо стажировку, либо не неполный день. На деньги просто пофиг, ищу ради опыта. И что-то почти нихрена нет :с
>>931827 (OP) Анон, помоги пожалуйста. В общем такая штука, если коротко, последнее время учу кресты, нравится все и сам язык и прочее (может быть это по неопытности), толком много не выучил, но чувствую что по чуть чуть начало получаться, отвечаю на некоторые вопросы в тредах по С++, естественно не на все вопросы, редко. но бывает.
Думал к лету дочитать полностью книгу С. Прата и книгу Седжвика (Алгоритмы на С++), немного почерпнуть классики из Джосаттиса и попробовать рыпнуться на стажировку хоть куда. Теперь переходя к проблемам 1. Хватит ли вышеперечисленного базиса, чтобы пройти на стажера ? Задачи типа перевернуть строку, не вызывают проблем, классические алгоритмы типа пузырьковой сортировки знаю, но что то большее типа сортировки Шелла или графы думал выучить к лету, сроки вроде бы позволяют.
2. Сегодня появилась вторая проблема. Позвонил друг позвал к себе в кантору работать, продавать оборудование, я не гордый, он сказал стартовая 60К чистыми после первого года 100К грязными + премия и так далее, честно скажу заинтересовало, очень интересно мнение анонов ,я немного в растерянности, и колется и хочется.
О себе: 26лет, специальность теор физ, сам сейчас аспирант , до этого ни на чем другом не прогал, выскажите свое мнение, пожалуйста.
1. Касательно первого пункта, стоит ли еще что то конкретно подучить. И где можно взять задания для пет-проекта, чтобы показать что я хоть чуть чуть не даун, я понимаю что придумать должен сам, но кроме арканойда и кастрированной копии маткада (считает интегралы и чертит графики через OpenGL(больше мозгов пока не хватает) ).
2. стоит ли задуматься над предложением, потому что друг сказал , что с начальником договориться и я работать буду, признаю меня интересует только вопрос интереса + деньги если денег будет сильно больше чем в варианте с С++, боюсь что выберу его.
Что скажите ? Прошу вашего внимания. Приветствуются любые ответы, ну желательно по существу. Спасибо.
>>933010 Хуёво. Я вот из веба думал перекатиться в кресты в ДС, но пугает малое кол-во вакансий. Вот прямо сейчас без опыта 3 штуки норм стажировок. В ДС!!
>>933482 Не понял, ты учишь кресты и хочешь пойти в стажёры, и одновременно тебе предлагают пойти ебаным продажником и ты в растерянности, куда же рыпаться? Ну что ж, удачи. денег, если найдёшь стажировку, будет около 30-50к, так что сам думай, что тебе важней
и да >дожил до 26 лвл и не умеет в -ться, -тся Тебе точно в продажники
>>933628 Объект удалиться. Поток не остановится. Если у объекта не была создана локальная (по отношению к потоку) копия то при попытке доступа к данным объекта наступит UB.
>>933591 Только на hh, если честно, не знаю, есть ли ещё какие места для поиска вакансий
>>933640 Но как, блядь, он умер, если все машин-лёрнинги, искусственные интеллекты и прочая интересная фигня на нём пишутся? Да и игрули туда же.
>>933671 Стажировкой я назвал как и, собственно, стажировку, так и "джун без опыта, но со знанием". У остальных вакансий стоит чётко - опыт разработки от 1/2/3 лет.
>>933747 >>933671 Внезапно анон прав. Препод по проге мне на полном серьезно говорил мол ты изи джунгли пройдешь. Но чет они только на фулл день, а я не смогу
>>933747 На hh в МСК чисто без опыта вообще (нулевые) 46 вакансий С++. С опытом 1-3 уже 450, и на многие могут взять чувака без опыта, если ты круто пройдешь собеседование. Джуном естественно.
>>933789 Приглядись, там из этих 46 половина уже за давностью лет забылись, другая половина около-крестовые, по большой части знание крестов - в доп пунктах, а сама вакансия ни о чём
>>933806 Пригляделся, там 80% вакансий реальных. Скажи честно, на самом деле тебе работа нахуй не нужна и ты хочешь сразу в топовую контору со всеми удобствами и чтобы рядом с домом?
>>933809 а теперь посмотри, сколько же из них на неполный день, или просто сколько стажировок. Потом посмотри, где нужно именно на крестах прогать, а не "пишите на sql, c++ как приемущество" мимо другой анон-студентота
>>933814 Тебя понял. С++ студентики на полставочки нахуй не нужны. С их ебучими сессиями, лабами и студентскими жизнями из студентиков получаются хуевые работники, которые ничего не пишут, а если пишут, то создают больше проблем, чем решают. Иди лучше делай лабы в универе, наработаешься еще по жизни. Я вот когда студентом был - на фул устроился с третьего курса, а лабы к сессиям либо покупал? либо делал после работы. Бтв, после того как устроишься, ВУЗы вообще воспринимаются как клоунада.
>>933828 а вот теперь обидно стало за жизнь :с не знаю, учусь вроде в одном из top-tier вузов, но понимаю, что мой диплом без опыта и умений нахуй никому не нужен поэтому и хотел устроиться куда-нибудь :С
>>933809 Вы неправы, всего доброго. Ну анончик, нифига же подобного, первая же вакансия от трёх лет разработки, очевидно, они просто не указали опыт в настройках резюме. Ну и вторая половина первой страницы пикрилейтед, там чуть ли не 1с в дом требованиях вместе с крестами. Ну и начиная со второй страницы все такие уже. Нормальных вакансий штук 5-6 сейчас для полных нубов
вкатываюсь из джавы, очень смущает warning: C4290: C++ exception specification ignored except to indicate a function is not __declspec(nothrow) почему указание в сигнатуре бросаемого исключения не учитывается? где можно посмотреть, как в плюсах происходит работа с файлами, когда постоянно есть риск ошибки ввода-вывода?
Охуеть. Студентик, который не хочет фуллтайм, не хочет стажировочку, но хочет работать.
Стажировки могут себе позволить компании уровня яндекс и прочая хуйня, которые это будут делать исключительно с точки зрения пиара. Плюс пару рабов на будущее приглядеть. Крестоблядство - это не та сфера, где безрукий раб может принести хоть какую-то пользу. В лучшем случае это будет поделие с безумным количеством временных объектов, которое в половине случаев полноценно справляется со своей задачей. А более вероятный исход - хуйня, которая хлещет по памяти и сегфолтится на любом шаге в сторону. Учитывая, что это студентик, так он ещё и будет постоянно отпрашиваться на всякие вузовские мероприятия. А потом под конец 3х месячной стажировки исчезнет нахуй.
Зачем компании нужен такой человек? Если нужны рабы с низкой квалификацией, то кол-во студентов/выпускников на фулл тайм вполне достаточно. И их можно тыкать в их хуёвый код постоянно, что в итоге может привести к подобию рабочего результата.
>>934079 ну а я ищу либо стажировку, либо не фуллтайм. И чего вы все цепляетесь к "студенческим жизням" и "вузовским мероприятиям". Второе, лично мне, просто не нужно. А под первое я хз, что подогнать. Рассчитывая на стажировку или не фуллтайм, я естественно собираюсь не пинать и не отпрашиваться куда-то. Другое дело с качеством работ, тут уж зависит от поставленных задач. Но ведь опыт надо где-то брать, разве нет? чтобы не бегать с голой жопой, зато с дипломом
>>934102 По мухосрани около ДС ничего не скажу. В любом случае джуну можно смотреть на НИИ, военку и прочую хуйню. Туда берут почти любых людей, которые смогу написать на листочке for и if. Офк платить будут мало, зато получишь опыт для дальнейшего движения.
А так открываешь hh и рассылаешь своё резюме по всем вакансиям связанным с С++. На опыт и прочую хуйню похуй. Если ты не подходишь, то МАКСИМУМ что будет - увидишь отказ.
Программач, у меня препод ебанулся и заставляет приносить лабы, которые бы запускались на хрюшке без .net и visual c++ runtime. Серьезно, у него есть какой-то древний пентиум, у которого голая винда при перезагрузке с нуля накатывается, типа рамдиск, он там проверяет. А у меня десятка стоит и студия. Как мне совладать с ним? Накатывать прыщи?
>>934668 О, так ты только в начале пути Алсо, сам что-то делаешь, или только то, что требуют? хотя что требуют и от преподов зависит, в первом семе у меня халява была дикая, дальше уже хоть что-то сложное и требующее разбираться самому пошло
>>934670 Мне тут не показалось халявно, так как информатику в школе преподавали отвратительно. Я из тех долбоебов, которые практически наугад выбрали специальность, Выбор был между инженерным факультетом и программистским гуманитарным ничем не хотел заниматься, в медицину тоже не тянуло, в приемке сказали, что в ИУ7 я буду выглядеть совсем уж слабо, может были правы, может преувеличили, но порекомендовали РК6, на чистого инженера идти попросту зассал, так как весь год готовился к физике и написал на 60 с небольшим, к информатике готовился неделю и с минимума до 65 баллов дорос хотя может это не достижение, но до подготовки я делал задания лишь те, которые просто логически можно было решить, думаю за год мог бы дойти до 80 точно Делаю то, что требуют и совсем недавно стал немного от себя делать всякие безделицы сейчас дописываю игру "го" на C, после хочу что-то математическое сделать, калькулятор производных, быть может (хотя это не просто для меня). Ну я не чувствую, что проебался выбрав это направление, просто опыта в нем крайне мало, да к тому же я туповат.
>>934704 спасибо :3 ты тоже там не забивай на прогу, если нравится, тк мб и не удивлю, но не факт, что по специальности будешь работать хотя что там у вас на рк6, я не помню, проектирование что ли какое-то алсо, в следующем семе в этом уже даты регистрации все, если будешь понимать, что есть свободное время, пробуй в технопарк пойти. На основную может и не стоит, но открытые курсы годнота и будет полезным
>>934718 >не факт, что по специальности будешь работать Имеешь в виду не факт, что в программировании или не факт, что в своей сфере? У нас программистская специальность и немного инженерного. >хотя что там у вас на рк6, я не помню Системы Автоматизированного Проектирования (САПР) программы типа Inventor, Компас и тп.. Предполагается, что научат нас разрабатывать модули этих самых САПР и свои маленькие САПР, так как разработкой полноценной САПР занимается команда разработчиков хотя меня не тянет именно в эту сферу программирования.
>>934704 >>934702 Не парьтесь чуваки. Я вообще Э закончил пару лет назад, прогать на 5 курсе начал, 3 сема проходил в технопарк и сейчас вполне неплохой плюсовик.
>>934757 >или не факт, что в своей сфере this. Хотя, если у вас именно на проганье этих штук, это мб и интересно и затянет я то не знал, что именно прогаете Хотя всякое бывает в жизни >>934759 ты о чем?
>>934763 ходил на открытые курсы или на основную? я как-то вроде и думал на основную, а потом чет прикинул, 2 года как-то ГДЕ ИСКАТЬ СТАЖИРОВОЧКУ НА ПЛЮСАХ??? Я кроме hh и career особо не знаю, да и первый подгружает со второго вроде как
>>934771 В мое время открытой вроде не было, гонял в основной. ТП вообще такая штука, куда надо идти пока не начал работать, так как по мне он слишком широкое образование дает. Так что пока не работаешь пройди его, стажером в мэйл много кто идет на разные технологии, а ТП просто будешь по остаточному принципу закрывать, так как учеба в нем, вроде, обязательна для стажеров. >СТАЖИРОВОЧКУ Онли крупные конторы типо мэйлояндекса Алсо попробуй saveboard от касперского. Я в свое время просто откликался вообще на все, даже где от 3 лет опыта было, но програмерскую работу я только на 2 семе 6 курса нашел и работал фул тайм сразу.
>>934777 >идти, пока не начал работать Не знаю, мб я слишком загоняюсь, но ТП - еще минус два года без работы как таковой, хотя и с неплохим доп образованием И то со следующего сема тогда уж, тк в этом поступал только на открытые А опыт то нужно все же накапливать, вот и пытаюсь не очень успешно :с найти какую-нибудь стажировку или подобное
>>934783 >нужны быть ОЧЕНЬ жестким, чтобы попасть туда Поботай алгоритмы хорошенько и Ассемблер+как работает комп. Не боги горшки обжигают, я вообще в 21 начал код писать, не то чтобы я топовый разраб, но вроде все получается.
А есть ли что-то типа JavaDoc в C++? Просто, когда я писал на Java было очень удобно, что IDE кроме того, что показывала автоподстановку ещё и выводила текстовое описание метода.
>>934999 Вроде как doxygen достаточно часто используют. Но это же нужна поддержка о стороны ide - нужно сомтреть в конкретном случае какую систему ide использует, и использует ли вообще.
Есть функция get, которая считывает посимвольно (пробелы тоже, что важно) из файла и возвращает считанный символ. Как сделать так, чтобы после n-ного символа get начинал считывать с новой строки, игнорируя оставшиеся символы текущей строки?
Анон, подскажи. Какие есть утилиты для согласованного перемещения сорцов в проекте? Т.е. чтобы при перемещении файлов в другую папку автоматически во всех инклудах менялись пути к ним.
>>935096 Нет, я про то, чтобы загрепать все сорцы, найти там >#include "путь к перемещенному файлу" и заменить путь на правильный. Желательно чтобы можно было перемещать целые папки одной командой из консоли, и чтобы обновляла билд-файлы VS.
За прошедшие 30 лет кто-то должен был такое написать. Неохота пилить свой велосипед.
>>935157 Распространен такой подход что в #include указано только наименование файла, либо "имя библиотеки/имя файла". Никаких путей там нет. Их передают линкеру - ide или какие-то сборочные скрипты, make и т.п.
>>935157 Мне знакома эта боль. Папочку с проектом можно переносить, т.к. всэ ее ништяки можно прописать относительными путями. Моя трабла в том, что в растворе (solution) референцами лежат пара других (Bullet physics). Я так и не нашёл, где в студии пределать путь ко всем разом. Как бы так у каждого свой путиь прописан... вот и держу всё в корневом на Ц:/. Он как бы на всех компах один и тот же.
Вопросов по теме с сети много. Внятного решения пока не нашёл. Перебивать пути в vcxproj не работает.
>"имя библиотеки/имя файла" This. Если библиотека разрасталась-разрасталась и там уже 100 файлов в папке, то хочется разбить ее на подпапки, чтобы видеть структуру. Соответственно, во всех инклудах, подключающих перемещенные файлы, нужно заменить пути на новые.
Вариант "зачем тебе структура папок, когда у тебя есть структура проекта в Студии" не предлагать. Все нормальные плюсовые проекты грамотно упорядочены на диске. Я не верю, что у них с первого раза получилось правильно встроить структуру папок или что они переносили все вручную. Какие-то инструменты рефакторинга должны быть.
Анон выручай, где я проебался? Надо найти номер минимального значения в массиве for (int i = 0; i < 20; i++) { for (int j = 0; j < 20; j++) { if (array[j] > 0 && min < array[j]) { min1 = array[j]; cout << "min1 = " << min1 << endl; } } if (array == min1) min = i; }
Оке, тогда два вопроса: какой учебник для нулевого обучения, и какой взять, чтобы узнать новые фичи и освежить знания? Просто у Страуструпа раньше были конкретные уроки, в которых ты реально что-то делаешь( типа аудиодрайвер)
>>935216 >Где ты учишься? На курсах, там нету матана, походу все поясняют. В школе с этим плохо было но на курсах я вроде относительно далеко не самый долбаеб. У меня тут обосрамс опять. По факту тут надо посортировать плюсовые по убыванию. Я уже менял значения по разному, делал и добавлял еще цикли, один раз вроде получилось но я его стер потому что сначала просто шли плюсовие и все, надо было сдавать так. Суть в том что я хочу цикл сортировки запустить с минимального плюсового числа (ну и с другим значением, шоб в другую сторону пошли цифры).
>>935228 int idxmin = 0; minvalue = arr[0]; for(int i = 1; i < sizeof(arr); i++) { if(arr < minvalue) { int idxmin = i; minvalue = arr; } }
По-русски это значит следующее: говоришь, что держишь первый хуй член массива за минимальный. Сохраняешь его индекс. Очевидно 0. Если при сравнении с ним другой хуй член массива будет меньше, берёшь его индех и обновляешь значение. Так делаешь, пока не обсосёшь все хуи члены массива. PROFIT.
Я один такой или проблемы с кодировкой у всех? Когда же ссучий микрософт это разрулит! Я до 22-го века не доживу.
Купил себе ноут в японской виндой win10pro. Чтобы в консоли получить читабельное, надо посылать с Shift-JIS. Я бы это понял и принял как должное. Но почему же божественный UTF8 выдаот в консоль нечитабельную хрень. Ладно, проехали.
Пробую вывод японских крякозябров на английской винде win7ultimate. Поначалу та же фигня что в UTF8, что в Shift JIS, но переставляю локалку на Джапан и, о чудо из чудес!, строки в UTF8 читабельны!!!! Но не в рассовом Shift JIS, bleat.
Имеем следующую ситуацию: Японская винда требует для консольки Shift JIS и не приемлет UTF8 Английская винда не ест Shift JIS ни так, ни с японской локалкой, но хавает японский через UTF8.
>>935331 >>935332 Я этим и делал Бля ебусь в глаза, ничего не получилось. Вообще не понимаю как можно сортировать несколькими сортировками. Надо по возрастанию минусовые и по спаданию плюсовые.
>>935349 Упорядочить по возрастанию элементы с отрицательными значениями, и по убыванию положительные. Как на пике надо наоборот - что бы -19 шло к -3.
>>935351 Сначала сортируешь весь массив по возрастанию любым способом, потом находишь первый положительный элемент и сортируешь все начиная с него по убыванию, то есть в for вместо int i = 0 будет int i = first_postive. Ну или можно как-то так:
std::sort(v.begin(), v.end()); //сортируем весь вектор по возрастанию auto it = std::find_if(v.begin, v.end(), [] (const& int s) {return s>0}); //находим первый положительный элемент std::sord(it, v.end(), std::greater<int>()); //сортируем все что после него по убыванию
>>935359 >std::sort(v.begin(), v.end()); //сортируем весь вектор по возрастанию >auto it = std::find_if(v.begin, v.end(), [] (const& int s) {return s>0}); //находим первый положительный элемент >std::sord(it, v.end(), std::greater<int>()); //сортируем все что после него по убыванию ему надо ручками
По нажатию на кнопку должен меняться стейт, и он действительно меняется, однако дальше дело не идёт, он видимо из цикла не выходит. Кто объяснит, где я обосрался?
>>933855 На этом скрине есть вакансия, на которую собеседую лично я. Такие чучела-мяучела приходят, аж без слез не взглянешь. Нихуя не знают, нихуя не умеют, хотят денег.
>>935792 Начиная от "Чему будет равно A в uint8_t A = 333" заканчивая упрощенными вопросами из Майерсов и Саттеров. На ~90% моих вопросов ответить реально, если майерс и страуструп были прочитаны. Однако нет, есть индивиды, которые не отвечают вообще ни на один.
>>935873 Самое смешное, когда я пишу решение, а именно - 333 & 0xFF - у половины просто шары на лоб. Собрались байты ебать, а побитовые операции не знают.
>>935878 Некоторым командам приходится, т.к. специфика софта подразумевает повторение миллионов одинаковых операций в секунду. Если ты где-то сэкономишь пару тактов, то это здорово.
>>935882 Переполнение понятно не знают, но потом выясняется, что побитовые тоже не знают. Приходишь ты весь из себя умный на собеседование, думаешь - изи катка. А тебе задают вопрос, который ты вообще не знаешь. И ответ - в который ты тоже не врубаешься. И тут начинается когнитивный диссонанс
Вот это я неслабо пригорел, когда для структурки реализовал 'operator ==" и ВНЕЗАПНО выяснилось, что их нельзя сравнивать на != и для этой хуйни тоже нужно хуярить оператор.
Какого хуя так зделали? Ведь ежу понятно что != это !(operator ==). Нахуя лишний пердолинг?
>>936079 Блять, если бы на дишечке существовал аналог Qt (хотя бы гуи-части, все остальное то и так искаропки есть) - я бы уже давно забыл бы кресты как страшный сон. Но увы.
>>936092 Могут, но из нативного разве что dlangui, который пилит анон с лора, и который на нем пилит свою IDE для ди и читалку для ведроида. Но там не qml - язык разметки css-образный похож, но в биндинги оно не умеет.
А все остальное - это очередные блядские биндинги. Биндинг к gtk, awt, qt, qml, и еще куче хуйни. А я ненавижу биндинги, пусть нормальный натив запилят.
Давно мечтаю о гуе на основе движка шаблонов как в Vibe.d, это была бы песня.
>>936077 > Ведь ежу понятно что != это !(operator ==) Оператор != можно реализовать эффективнее чем !(operator ==), так как для != достаточно сравнивать объекты до первого несоответствия, а для == нужно совершить полное сличение объектов. Заставлять программиста выполнять полное сравнение объектов, тогда как можно обойтись лишь частичным противоречит идеологии с++ - программист не должен платить за то что не использует.
>>936146 Переделал немного. return digitSoFar; int x; int numDigits(int number) { int digitSoFar = 1; if (number < 0) number = -number; while ((number/=10)!= 0) ++digitSoFar; return digitSoFar; }
Но функция не возвращает число, а вот если пишешь cout << digitSoFar; return 0; то прога работает. Щто я не так делаю?
Я тоже хотел эту хуйню написать (даже подумал, что я пост случайно отправил, когда начал твой пост читать), но >>936153 . Нужен какой-то пример по-сложнее, в котором, действительно, будет какой-то выигрыш в производительности за счёт разницы между тем, как много нужно проверить для выяснения равенства и выяснения неравенства.
То есть, должно быть выполнено условие: - ты не можешь без ущерба для производительности вычисления равенства минимизировать время вычисления равенства до времени вычисления неравенства.
Ни с одной структурой, представляемой набором интегральных значений, такое не возможно.
>>936163 Проблема в том, что математически A != B тождественно равно !(A == B). Не существует в принципе такой ситуации, когда один из операторов можно реализовать эффективнее, чем другой, и получить при этом корректный ответ при любых исходных данных.
Ты упускаешь то, что ты можешь наперёд знать о неравномерности распределения данных.
Вот, придумал. Например, есть у тебя набор длинных строк, и ты знаешь, что: - оператор равенства чаще всего используется тогда, когда аргументы равны (вот такой вот говнокод), а оператор неравенства - тогда, когда неравны - строки часто различаются в конце, а не в начале.
Тогда в операторе равенства ты сравниваешь строки с начала, а в операторе неравенства - с конца, но это медленнее из-за обратного чтения памяти, но это всё равно выгодно, так как тебе известно, что чаще всего строки, сравниваемые оператором !=, неравны, а различия находятся в конце.
Довольно синтетический пример, разумеется. Все другие примеры будут такие же: у тебя может быть статистическая информация о том, в каких местах чаще всего объекты не равны.
>>936210 Вот уж действительно код курильщика. Код здорового человека: два или более методов вида bool equalsExpectDifferentHead(Govno &other); equalsExpectDifferentTail и т.п., которые используются вместо прямого сравнения там, где это оправдано; оператор ==, который делегирует наиболее нейтральному методу, и оператор !=, который делегирует оператору ==.
>>931827 (OP) Аноны, может вы подскажете, пользуюсь функцией PostMessage, чтобы отправить текст в окно (игру), если отправляю латинские символы, все отлично, если кириллицу, то, например, вместо 'ф' получается 'D'. Как пофиксить? PostMessage(Handle, WM_CHAR, 'ф', 0); Пробовал WM_UNICHAR, но так вообще никакие символы не получилось отправить.
>>936267 От игры зависит (шрифтов). Попробуй отправить все возможные комбинации - если кириллицы не найдется то без модификации программы нихуя не сделаешь.
Прошу прощения, не подскажете ли вы как избавиться от нулей на главной диагонали матрицы? Пробовал пузырьком сортировать(по той же диагонали), но не вышло.
>>936281 >Прошу прощения, не подскажете ли вы как избавиться от нулей на главной диагонали матрицы?
Тебе нужна матрица без нулей на гл. диагонали , но с тем же детерминантом?
Идёшь по диагонали, после встречи нуля ищешь ненулевой элемент в той же строке (или вертикали - главное, чтобы везде так же), и ту строку прибавляешь к этой.
>>936562 Сделай конструктор копирования, меняющий, допустим, глобальную переменную - и посмотри, изменилась ли она. По стандарту - если RVO или NRVO происходит, то конструкторы копирования не вызываются, и, соотв-но, ты увидишь это, т.к. глобальная переменная не изменилась. С++17 для этого не нужен. Так же можно похачить move конструкторы, например.
аноны, помогите пожалуйста с моей проблемой суть такова: есть библиотека https://github.com/nanomsg/nanomsg , которую я тереблю в своем проекте на щарпе с помощью дотнет обертки. соответственно дллки из репозитория: https://github.com/mhowlett/NNanomsg и они требуют msvcr120.dll строго. я скачал исходники самой nanomsg, сделал проект через cmake, выставил для всех проектов в солюшене Multithreaded вместо MultithreadedDebugDLL чтобы она не требовала рантайм. собралось всё успешно, но не проходит тесты и периодически отваливается что мне сделать чтобы конечному юзеру моего приложения не требовалось тащить vc++ redist?
>>937377 потому что, он генерится только если не объявлин любой другой, если ты объявил то дефолтный ты должен тоже объявить явно
>If no user-declared constructors of any kind are provided for a class type (struct, class, or union), the compiler will always declare a default constructor as an inline public member of its class.
Котоны, поясните как лучше собирать строку. Тупо std::string str; str += "string1"; str += "string2"; str += "string3"; Или std::stringstream ss; ss << "string1" << "string2" << "string3"; Сейчас у меня первый вариант, ибо нет никаких конвертаций интов или ещё чего, как и хитрого форматирования, в которые умеет stringstream. Просто из нескольких мелких строк собирается одна.
>>937687 без разницы, если ты делаешь laba1. Если надо максимально производительно - то в дестинейшен стринге преаллоцируешь память, и потом туда аппендишь инераторы трех строк
Есть кто? Я недавно изучаю С++, написал 1 программку, всё нормально было. Создаю 2 проект для програмки, написал простенький код, а он не работает, ошибку не понимаю - пикрил. Помогите, в чём может быть проблема?
>>937849 >>937847 И правда, удалил и создал заново хедер и заработало, спасибо. >Удали нахуй свое красноглазое поделие, которым не пользуется ни один вменяемый человек Ну я только начал, вроде он простой и функционирует нормально. Для начала сойдёт.
В вузе сказали придумать самому себе задание на автомат, кек. Задумался над реализацией генератора капчи, какие подводные? Не слишком ли легко? Может есть какие другие идеи?
>>931827 (OP) Сап, крестовики. Сегодня понял, что в будущем кресты мне понадобятся для околонаучных или вроде того штук. Изучал кресты в универе - писали алгоритмы всякие, чуток winapi на многопоточность. Но тут такая тема - понял, что чтобы не обосраться - нужно очень хорошо знать C++, иначе будешь генерировать говно, которое медленей питона, а как его знать, если не пишешь еверидай, да и если пишешь, я хз.
Твою капчу скормят какоу-нибудь распознаватору, он распознает, и ты обломишься.
Генератор капчи - это задача с разным решением в каждый момент времени. Как только начали распознавать - надо дорабатывать, универсального решения нет.
>>938048 >Но тут такая тема - понял, что чтобы не обосраться - нужно очень хорошо знать C++, иначе будешь генерировать говно, которое медленей питона, а как его знать, если не пишешь еверидай, да и если пишешь, я хз.
Писать так, чтобы было медленнее питона, сложно. Как можно сделать так, чтобы было медленнее питона: - постоянно создавай и разрушай объекты в динамической памяти - делай дохрена коротких циклов - никогда не пиши локальные алгоритмы (т.е. использующие ограниченный набор данных)
Скажи преподу, что батя подложил стандарт языка под подушку, и ты там нашёл std::find.
Если вы учили, то почему ты вообще спрашиваешь? Если тебе дали задание, с которым ты разбираешься, как хочешь - это одно, а если тебе всё разжевали и дали элементарное упражнение - сделай сам.
>>937784 А если у меня там не 3 строки, а пара строковых поля и ещё несколько строковых списка, в которых может быть и 1 и 10-20 элементов? Сейчас я, как в первом посте, объявляю строковую переменную и делаю += полей в неё и тот же += но в for для списков. Ясен хуй, хотелось бы делать это максимально эффективно.
>>938380 >Причем тут неосиляторы При том, мой необучаемый, что нормальный студент за те 3 дня что ты тут канючишь, уже давно эту хуйню уже бы сделал. Так что ты и есть каноничный лаба даун, который идет нахуй.
Неосилятор в треде. Начал изучение С# еще 4.5 года назад, казалось бы за это время можно стать мидлом или даже сениором, но нет, дальше массивов я не продвинулся. Затем был С и С++, которые я учил 2 года, к указателям даже не приступил. Бросаю все постоянно и начинаю учить новый язык. Как себя перебороть и вкатиться?
Никак, это судьба. У тебя наверняка с другими делами такие же проблемы.
Если ты ещё не пробовал: поставь задачу, которая интересна ТЕБЕ, и реши её. Задача должна быть такая, чтобы ты смог решить её за обозримое время - без жёсткого матана и ковыряния внутренностей языка.
>>938759 Миня аж трисёт Тебе уже ответили > Если надо максимально производительно - то в дестинейшен стринге преаллоцируешь память, и потом туда аппендишь инераторы трех строк
Анон, поясни что именно происходит при объявлении массива объектов: Cls obj[4]; В случае просто объявления объекта Cls obj; вызывается конструктор Cls::Cls() насколько я понимаю. В объявлении массива он вызывается для всех элементов массива или нет?
И поясни что происходит на скрине - почему объявление массива Cls1 вызывает ошибку, а Cls2 - нет?
>>938947 >В варианте с Cls1 ты обьявил кастомный конструктор, соотв-но дефолтного нет, и вызваться он не может Блять, т.е. если не описан ни один конструктор, то создаётся дефолтный конструктор без параметров (и с пустым телом, наверное), а если описан хоть один конструктор с любыми параметрами - то уже хуй тебе?
Через неделю иду на собеседование в контору, где на C++ херачат нейронки. Что могут спросить? Какие знания нужны в первую очередь? Меня интересуют в первую очередь C++related вопросы, а не вопросы на общее знание нейронок.
Ну ты спросил. С++ настолько обширен, что хер его знает, из какой области они могут задавать вопросы. Если до этого на С++ не программировал, то ловить тебе нечего.
>>938981 Что спрашиваю на собесах я: 1. Сложные наследования, порядок создания\удаления обьектов в иерархиях. 2. Ловля эксепшенов, эксепшены из конструктора\деструктора. 3. Итератора + algorithm иногда 4. Что такое тимплиты, зачем, специализации (это мидл+) 5. Сишный пердолинг, типа переполнения знаковых\беззнаковых чисел, адресная арифметика. 6. Немножко про многопоточку. Треды, Атомики, Процессы, Мутексы
Чисто теоретически - прочитав всего Майерса и обе книги Саттера, ты ответишь на 95% моих вопросов.
>>939115 Ну, проблема в том, что работы ты ищещь, а не я. Если ты будешь посылать нахуй когда тебе что-то не нравится, то "Мы вам перезвоним-тред" твой славный удел. Мы несколько раз брили людей, которые проходили тех собес, но не нравились как люди.
Остальные 5% вопросов придумываются из головы по результатам дискуссии с собеседуемым, если дискуссия с ним возможна.
Т.е. если человек хорошо отвечает на вопросы - дальше идет свободная беседа уже.
>>939106 у нас на фирме просят перевернуть список или сделать сортировку пузырьком на бумажке 80% кандидатов не пишут остальные пишут со скрипом и ошибками :D
>>939197 если бабка оставила выморочнкую квартирку на васильевском острове, то норм =^_^= а понаехалы пусть страдают и кучкуются вместе на съемных хатках
вообще, питер нищий город приехал сюда пожить, отбивай тем что есть, а именно наркотой и культурой советую походить по музеям закинувшись марочкой ;D но это для эстетов
>>939193 Это азы языка. Если ты не знаешь азов языка - ты ждешь звонка. Если спрашивать предметно по нашим продуктам - там такие технологии, с которыми ты дома не столкнешься вообще никогда. Нет, правда никогда. Т.к. они слишком специфичны для одной конкретной области.
>>939262 хорош юлить че, правда высраиваете иерархии классов аля привет 90е как в mfc или vcl? дык никто так уже не делает исключения - не юзают по факту многопоточка - опять же нафиг по ней гонять если на проектах не используете..
>>939280 >30 лет, без во и опыта работы подойдет? в кресты? нет попробуй что-нибудь другое просто потратишь время (которого и так у тебя не много осталось) на попытки устроится и все
>>939307 Добавлю к моему посту >>939310. Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++. Т.к. язык огромный. В итоге я пришел к выводу, что надо спрашивать только о самом языке и стандартной библиотеке. И даже тут меня критикуют. Серьезно, как определить уровень человека?
К нам приходил мужик с 5 годами опыта, не ответивший ни на один вопрос. К нам приходили люди вообще без опыта, ответвившие на большую часть вопросов. И мы их брали. Я обьясняю это тем, лучше взять мотивированного, который сам изучал, но без опыта. Чем хуесоса с 5тью годами, который даже не знает, что С++11 вышел. Первого можно научить, второго нельзя.
>>939251 Ну в питере зарплаты все-таки выше, чем по стране. А вот в моей 50к мухосрани (Ростовская область) работы вообще никакой нет, думаю в Ростов осенью перекатываться.
>>939315 все эти языковые ньюансы и пузырьки нахуй не нужны и вылетают из головы если не юзаешь, вон тот мужик с 5 годами точно такой. я бы смотрел на проекты и как бы анон решал некую задачу из продакшена на псевдоязыке.
>>939320 Да хуй его знает. Вбил себе тогда в голову, что кодинг не мое. А тут чет опять попробовал и прям интересно стало, втянулся. Сижу вот mit'шные лекции по алгоритмам смотрю. >>939324 Значит решено - в дворники.
>>939315 >Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++ >Серьезно, как определить уровень человека? давать простейшую задачу (на 15-20 строк) делать на бумажке это необходимость по языку спрашивать только то что у вас используется на проектах
>>939333 Ну какие проекты? Я на прошлой работе, видел разрабов по 10 лет опыта, которые просто настолько говноеды, которых я бы даже с джунов гнал ссаными тряпками, насколько они нихуя не знают. Просто научились 10 лет назад шлепать говно, так его и шлепают, не думая. C++11 для них это что-то мистическое, лучше на старой доброй 2005ой студии хуярить, зачем нам новое. Они вообще не знают и не понимают язык, просто знают некие паттерны самопальные (я не про GoF), и их и применяют. Вот по-этому я спрашиваю по языку. А спрашивать про прошлые проекты - я могу тебе столько нафантазировать, что ты лапшу с ушей не снимешь, т.к. все, проекты, которые я делал на работах, я знаю как работают, но сам бы их никогда не написал.
>>939338 Код, связанный с нейронками, это лишь какая-то часть проекта. А как написана вся обвязка - никто не знает. Может быть там поехавший архитектор, которому в детстве вместо сказок читали Александреску?
>>939341 Ты на практике с нейронками на C++ встречался? Привести пример что конкретно там использовалось можешь. Я просто пытаюсь перевести разговор в конкретное русло, а кукакрекать ВСЕ ЧТО УГОДНО, МНОГО ЧТО ИСПОЛЬЗУЕТСЯ может любой даун вообще в вопросом не знакомый.
>>939532 Два двумерных массива. Первый содержит буквы алфавита A, B, C, D и т.д Второй координаты типа AA, AB и т.д. В итоге пишешь ты Hello, каждая буква в слове получает свою числовую координату в первом массиве и передает эту же координату во второй массив.
Take off the last digit and multiply it by 2. Subtract it from the digits you have left. If the answer divides by 7 (or is zero), then your original number will also divide by 7!
К хуям генерить 30+ лярдов. Юзай это правила тыпонел
гружу линух с флешки почему всё через жопу? почему codeblocks в раздаче 13-й версии, a ne v 16-й? почему надо САМОМУ ставить г++ и оно пездит про dependences?
Пытаюсь разобраться с принципом работы хттп соединений. Через ссл сокет пишу все, как пишет браузер, если я все правильно понимаю. Скрипты/картинки и прочее не подгружается, сам браузер с выключенным контентом через noscript suite lite прекрасно работает через одну только html страницу. В ответе на скопированный с браузера запрос вместо хтмл кода страницы идет адекватный респонс, полность аналогичный респонсу для браузера( только Connection: close ), видимо, сервер закрывает, видимо ему что-то не понравилось. После моей дебаг строчки new data идет бинарная срань вместо html кода. ЧЯДНТ?
>>939826 >Взоржал с рукожопых дЭбилов песавших линух, в данном лучае минт у них в репозиториях 13-й codeblocks г++ не с пакете, и не встаёт без костылей
>>939823 омфг, убрал из Accept-Encoding и все заработало, аутентификация прошла успешно как расчехлить этот gzip? скопировать бинарки в 1.gz и пробить gzip -d 1.gz не проканало. и да, может быть ты знаешь, как можно из полученного респонса найти скрипт рекапчи, получить вводимую капчу/картинку/аудиокапчу к себе в приложение, решить на стороне любой антикапчей и запихнуть это все дело обратно на сайт? в веб деве огромная куча говна в котором трудно искать полезную информацию
>>939845 > омфг, убрал из Accept-Encoding и все заработало, аутентификация прошла успешно > как расчехлить этот gzip? скопировать бинарки в 1.gz и пробить gzip -d 1.gz не проканало. Подключить библиотеку zlib и распаковать в памяти, манька, я такое в 12 лет делал.
> и да, может быть ты знаешь, как можно из полученного респонса найти скрипт рекапчи, получить вводимую капчу/картинку/аудиокапчу к себе в приложение, решить на стороне любой антикапчей и запихнуть это все дело обратно на сайт? в веб деве огромная куча говна в котором трудно искать полезную информацию Для начала взять нормальную библиотеку, предназначенную специально для этого. Или ты собрался велосипедить не только хттп, но и парсер дом, и интерпретатор джяваскрипта?
>>939720 Разве стоит брать 1 в комбинацию, в условии сказано, что она не простое число. Так же, почему в данном подходе не учтены числа, содержащие 2 или 223 , например 23 ? 23 - простое число, состоящее из 2 простых чисел, под требования подходит.
Разумеется нихрена стандартного нет, так как даже этот документ - не стандарт.
Стандартный enforcement - это Rust, D и прочее.
>This adds up to quite a few dilemmas. We try to resolve those using tools. Each rule has an Enforcement section listing ideas for enforcement. Enforcement might be done by code review, by static analysis, by compiler, or by run-time checks.
>>939856 >интерпретатор джяваскрипта Нет, именно этого я и не хочу делать, я хочу сам интерпретатором с той стороны, с которой мне это нужно привел же пример с капчей - есть скрипт, котоый подгружает картинку или что-то подобное со стороннего сервера, обработать у себя, отправить на сервер с капчей, получить ключ аутентификации и добавить его в пост, если я правильно понял как это все работает.
>>939315 > Меня на полном серьезе мучает временами вопрос - как проводить собеседования по С++ ИМХО, нужно спрашивать базовый синтаксис и общие вопросы на адекватность. Если человек заявляет экспертизу в какой-то прикладной области, то мусолить по ней.
На последнем собесе (проходил чисто для фана) дело дошло до того, то начали спрашивать про линуксовые и виндовые ABI -- рассказал; про vtable & type_info (для dynamic_cast) -- рассказал; про то, что будет, если в хэдэре объявить переменную char c = 0 и включить этот хэдэр в два разных cpp, объектники которых слинкуются в общий файл -- тут я выпал. Такая практика явное зло и зачем так делать? Значит, можно и не помнить такие нюансы. А вот спросили же.
это код кнопки отправки сообщения в вк, вызывается функция mail.send(this, receiver_id), собственно, где можно найти эту функцию и как можно ее вызвать через сокет?
>>940445 потому что сокет, я подключаюсь к серверу вк и хочу отправить сообщение, используя куки, а каким образом можно вызвать функцию отправки сообщения и где ее найти я не знаю да и в целом в с/с++ тредах експерты по всем областям обычно
>>940447 Ставишь burpsuite (или открываешь консоль разработчки - вкладку сетевой активности) и смотришь что браузер шлёт на самом деле. Скорее всего POST запрос с json в теле запроса. Но имхо проще vk api взять https://vk.com/dev/messages.send
>>940448 В любом случае, как бы это ни было релизовано, невозможно уйти от того, что у браузера есть сокет, и в этот сокет он что-то пишет, чтобы отправить это сообщение. Где этот js ковырять? Я в вебе ноль полный. Ну, логично же, что скрыть реализацию от пользователя невозможно, все равно где-то лежит этот скрипт и где-то в нем находится то, что нужно запихнуть в сокет. Есть подозрение что на пике некая шаблонная js функция, которая генерирует пакеты по любой сигнатуре. Но главный вопрос в том, как эта js функция работает при выключенном js.
>>940456 Да я только в ней и сижу, происходит пост с одним и тем же хеш кодом, вот пост код для различных сообщений, сообщения видны на скрине. Отправляется ключ аутентификации (как я понял) и некое магическое число. Я сомневаюсь что в этом магическом числе записано все сообщение. Проще раскатать ssl через wireshark уже, но как-то не хочется байтоебить раньше положенного.
>>940471 >вк апи не использует сокетов вообще Я на хую вертел вк апи, я хочу делать все напрямую. >>940474 >сли как пользоваться и как работает дебаггер программы не знаешь - это уже не проблема незнания js. В ТОМ ТО И ДЕЛО, ЧТО ДЖС Я ВЫКЛЮЧИЛ всеми возмоджными способами, аддоны блокируют. Сообщение отправляется непонятным мне способом, через пост отправляется только код аутентификации и МАГИЧЕСКОЕ ЧИСЛО.
>>940477 >через пост отправляется только код аутентификации и МАГИЧЕСКОЕ ЧИСЛО Не пизди. Пикрелейт сниф post реквеста после отправки сообщения с выключенным js. Все есть. проще всего собственную криворукость оправдывать МАГИЕЙ.
Посмотрите мой обход, суммирование и фильтрование (выпиливание типа) std::tuple. Можно ли как-то лучше сделать? Обход вроде норм, но суммирование и особенно фильтрование у меня вызывают вопросы. Можно ли лучше? Да, я знаю про boost::fusion, интересно было свои велосипеды написать
госопда, помогите ньфане. немогу никак разобраться с указателями, как правильно передавать указатель, чтоб выводился массив значений, а не адресов. (строки 6, 22, 47). Не могу никак вразуметь - указатель, разыменование, взятие адреса.
Можно ли сделать класс Stack, который будет хранить в себе контейнер, в котором в свою очередь будут храниться шаблоны разных типов? Вот что я имею ввиду:
template<typename T> class StackElement { ... T m_data; };
Или это надо делать не через шаблоны, а сделать базовый класс для StackElement и для каждого типа наследовать его и писать отдельную реализацию, а в стеке оставить контейнер для базового класса? И какой из этих двух вариков предпочтительнее?
>>940896 Почему не так? Я хочу реализовать контейнер, который будет хранить элементы с содержимым разных типов, но с одной и той же оберткой. Может это как-то называется, или это вообще невозможно в компилируемом языке? В питончике, например, где нет типизации, можно просто любые объекты хуячить в один и тот же массив
>>940898 Это не питончик, в этом то и проблема. Есть std::tuple, куда ты можешь пихать любые типы, однако все эти типы должны быть разрешены на этапе компиляции
>>940907 А кстати да. Скорее всего Ужасные Плюсы таки записывают ID типа в заголовок каждого элемента. Не удивлюсь если и динамические я/п тоже так делают.
Блять, как же у меня горит очко от этого ебучего с++. Почему до сих пор не сделали нормального компилятора к джаве? Это самый хуевый язык, который я видел. Сколько надо лет с ним ебаться, чтобы вкатиться в ооп? Все эти блять конструкторы копирования,константные r-ссылки на константные данные, операторы равенства, виртуальные декструкторы, модификаторы наследования(которые никто не использует), хуево сделанные виртуальные функции(и чисто виртуальные), про множественное наследование вообще молчу - это блять пиздец. Просто ссаное говно слепили за 30 лет, вместо того, чтобы оставить вполне годное С с классами
>>941108 Я писал на джаве и горя не знал, все казалось простым и понятным, включая нетривиальные вещи типа паттернов и тд. Я читал и Страуструпа, и советы Майерса. Вроде когда читаешь все кажется неплохо. Но когда начинаешь сам писать - это просто сущий пиздец (я не говорю про хелло-ворды и три класса аля фигура-круг-квадрат). Вот, например, у меня есть класс, типо упрощенный контейнер для BaseClass, в котором весь функционал сделан для работы с типом BaseClass. Но сам BaseClass нихуя не содержит(типо просто интерфейс), а я хочу хранить в контейнере и работать с наследниками BaseClass. И у меня так не получается сделать, ибо все функции энивей вызываются для BaseClass.
>>941120 Если BaseClass типо интерфейс, то его функции объявляются как виртуальные и при работе с с его наследниками будут вызываться их функции. В чём проблема?
Конечно, ведь ты хранишь в контейнере объекты по значению, а не по указателю. То, что ты сделал, называется "срезка". Храни в контейнере std::shared_ptr'ы на свои объекты, если тебе нужен именно контейнер, содержащий указатели на класс-интерфейс.
>>941120 И чем реализация подобного на плюсах отличается от джава реализации, кроме необходимости объявить функции виртуальными? Не совсем ясно что ты имеешь ввиду под "нормальным" компилятором, и что именно тебя заставляет писать на плюсах, а не джаве - но есть вариант что никакой компилятор джаве не поможет, а все объясняется именно "эти блять конструкторы копирования,константные r-ссылки на константные данные, операторы равенства, виртуальные декструкторы".
>>941127 Такс, похоже ты прав. Т.е. если в контейнере я заведу массив указателей на базовый класс, то каждый раз будет вызываться нужный метод унаследованного класса, даже несмотря на то, что указатели на базовый?
>>941131 Отличается тем, что там есть ебучий интерфейс и нет указателей/ссылок. Я могу в контейнере создать лист с типом интерфейса, а пихать туда наследником и для каждого наследника будут вызывать его функции.
Да, если все правила полиморфизма соблюдены. Но в 2017-м никто не работает с голыми указателями без особой причины. Используй умные указатели, я один тебе уже назвал.
Алсо, в джава все не POD типы всегда создаются на куче и за ними следит сборщик мусора. В плюсах все типы могут быть созданы как на стеке, так и в куче. Если объект создан на куче, то за его удалением должен следить ты или у тебя будет утечка. Но я и так тебе дохуя разжевал, иди кури мануалы.
>конструкторы копирования, >константные r-ссылки на константные данные >операторы равенства Не пользуйся всем сразу-то.
>виртуальные декструкторы Делай все деструкторы виртуальными.
>хуево сделанные виртуальные функции ВРЁТИ. Я бижала два километра чтобы сказать.
>и чисто виртуальные Классы с ними — это те же интерфейсы, что и в жаббе.
>множественное наследование Не пользуйся. Кто тебя зостовляет.
>вполне годное С с классами ВРЁТИ. Оно негодное. В нём не было наследования поведения (т.е. интерфейсов), в нём зато было наследование реализации (классов) и это был такой же ночной кошмар, как в тырпрайзной жаббе, см. Google, "fragile base class".
>>941142 Я уже разобрался с этой хуйней, спасибо. И да, я в курсе про память в джаве/с++ и шаред/уник птрыи прочую хуету из новых стандартов. Просто я видимо слишком много читал, и слишком мало практиковалсятак-то в тырпрайз хуйне работаю, просто решил воплотить мечту детства - написать свой движок для игр. А так с/с++ учил в универе, даже компилятор свой писал, но тогда как-то новый стандарт никто еще не использовал и все выглядело более-менее понятно
>>931937 Я завалил банальное простое интервью по скайпу, когда косячил непрерывно онлайн кодя простую программу. Перед этим рекомендую освежить знания по банальной поинтер арифметике, исключениям. Как это все называется из stl. Способы скопировать два массива без подсказок из гугла
Сап, с++ч. Посоветуй книгу/сайт, в котором поясняли за основы с++ и его синтаксис не для нулёвых, но и для тех, кто мало знаком с с++ (я, например, имею опыт работы с другим си-подобным языком C#, так что мне не нужны объяснения про базовые типы, скобки, что такое программа и тд)
>>941300 Алсо, есть разница между Visual C++ и просто C++? Я слышал, что visual c++ урезан, по сравнению с полными версиями, мол только под CLI собирается и всё такое. Или там есть возможность выбора?
Читаю сейчас книгу Стенли Липмана из ОП поста, вроде все норм. Книга с самого начала вводит в классы и стандартную библиотеку без лишней ебли с Сшной низкоуровньщины. Короч сразу С++.
Полет нормальный. Опыт программирования имеется, книга легко читается.
>есть разница между Visual C++ и просто C++?
Нет, лол. Хотя рекомендую Clion от жыдBrains с компилятором gnu
>>941335 >Читаю сейчас книгу Стенли Липмана из ОП поста Тоже читаю ее. Вдобавок начал читать последнюю книгу от дохлого страуса в самого начала, но че-то очень уныло идет.
>>941335 >Хотя рекомендую Clion от жыдBrains с компилятором gnu А вот почему? Я установил уже себе, но он интуитивно непонятен, поэтому я вернулся в visual studio. В CLion'е даже проект не смог запустить, кнопка run была неактивна, и я в рот ебал разбираться, если разницы нет, а в вижуал студио всё с пол пинка заводится. В чём разница то между компилятором gnu и том, что в VS? Скорость?
>>941363 Главная фишка CLion'a - это кроссплатформенность и CMake. Т.е. это реально заявка на первую универсальную IDE для всех платформ.
Но увы, пока получилось тормозное java-говнище, кококо, петуханы, 85 гигабайт памяти хватит всем. Ну и парсер там пока сильно хуже, чем в студии. Через пару-тройку лет, возможно, CLion станет неким стандартом индустрии, как и Phpstorm и Pycharm, например.
А пока - близкого ничего к студии в винде нету. Все из коробки, все идеально работает, лучшее автодополнение, лучший дебаггер. Только за дебаггер для ньюфагов - студию надо выбирать в 100% случаях. Никто с этим высером gdb пердолиться не будет
>>941368 Дык, студия куда менее юзабельное и более тормозное говно.
Хз какие там проблемы с парсером нашёл, цлион умеет из коробки как студия с решарпером (а студия с ним ещё лагучее чистой студии в 3 раза), так ещё и юзабельнее по всем фронтам — сравни хотя бы кейбинды. Попробуй вот в одной и во второй по клавиатуре понавигировать по коду, забиндить что нибудь на колесико или ктрл+м1 в студии, или просто как в одной и второй делается column select — хз как вообще студией можно пользоваться (хотя тут жеж люди на плюсах в 2017 пишут, чо там). Про фичи вроде семантической подсветки вообще нечего сказать.
Вне винды ничего кроме улиона тоже нет — икскод баганное говно не работающее с плюсами почти никак, всякое прыщавое вообще не работает.
Гдб в этом самом лионе работает не хуже чем в студии (он все равно нужен ровно до первой пары шаблонных высеров из буста или как пока кол-во потоков == 1).
>>941381 То есть по факту тебе сказать нечего? (в том числе и о том, нахуя нужны плюсы, кроме как для легаси). >>941386 Тормозное говно с петоном. Я пешу рукаме и нафигирую с помощью грепа нахуй, не мешайти мне1
>>941389 Т.е. ты по факту — сгоревшая порватка, которой ПИЧОТ? Кто тебя просит на менеджед говне писать низкоуровенное говно? Есть и куча нормальный байтойобских языков.
>>941390 Прокатит рефакторинг в иде? в си диды ищо ни так пейсале
>>941401 >кудкудах лан отвали >>941405 В вижуалстудиоговне рефакторинги вообще не работают (как и во всяких кутякреаторях и кдевелопах, цлион единственная хуитка которую я видел в которой можно поменять название поля сразу во всем проекте. Вот такой плюсы хороший язык, для хачкеля легче иде блять написать, срсли).
>>941409 До тех пор пока тебе нужен редактор с подсветочкой кода и, максимум, доподлнением тегов. Иначе — тормозное говнище с лагами. Там кстати хотя бы треть поагинов под восьмерку с асинками переделали?
Исключение вроде как бросается, но сообщение нихуя не выводится, скорее всего очередная еботня со стринг/чар. Что не так? Алсо, если просто передавать oss.str() и сделать конструктор для строки, то энивей нихуя не робит
>>941305 Обосрешься, если я тебе скажу, что в 2013 версии MSVC не было возможности создавать перемещающие операции по-умолчанию, для копирующих-то `default` работал нормально, а вот на перемещающих операциях отказывался собирать. В отличии от GCC, например, у компилятора также добавлена туча дополнительных служебных функций, которые предназначены для работы с WinAPI, и, хотя, реализовать это можно с использованием MinGW'шных библиотек и поргированного GCC, все же они гораздо удобнее в применении (если речь идет о WinAPI). Алсо, в компилятор включены функции связывания C++ с C#, который они прозвали CLR, то есть при использовании той же крествоской DLL'ки не придется ебаться с маршаллингом, да и вызовы, как многие говорят, будут быстрее.
Короче есть типа одна зашифрованная строка, например 00100110 (8 символов) Или 0010011011000101 (16 символов) Кароч кол-во символов всегда кратно 8. Мне надо эту строку раздробить по 8 символов и перевести каждую часть из двоичной записи в буковки, расшифровать эту строку короче. Как это сделать?
>>941574 У тебя на компе может быть несколько реализаций OpenCL (допустим, для AMD и для Intel). Посмотри, какую платформу ты забираешь. Возможно, у тебя какая-то mock-платформа, под которой нет девайсов. Если это единственная платформа вообще, то попробуй накатить официальные дрова с OpenCL sdk.
Студент 1 курс, прогаю на крестах. В универе заставляют и мне интересно. Поясните, есть ли будущее с крестами? Как джуну вкатиться хотя бы за еду (на будущих курсах), ради опыта? И еще вопрос. Как не захлебнуться от такого количества инфы и прочей хуйни в области программинга не обладая сверхпамятью? Ведь каждый год все больше и больше этого. Даже вот всякие эти сандарты с11, с14, я блять только с++ стал изучать.. А когда универ закончу будет уже over 9999 стандартов и вообще вернусь к истокам
Поясните такое. Одногруппник java-petooh поястоянно кукарекает какие кресты гавно, все на java, банки на java, виртуальная машина. Он чуть ли не кончает от этого. Причем на ровном месте заводится и критикует кресты. Прав ли этот пациент, что java настолько пиздата?
>>941964 На этом ноуте в гарантией только Intel. И, как я писал, генеральной проблемы, что не находит девайсы нет. Проблема в том, что, передавая собранную скомпилированную program из субрутины, в её context теряются devices. Что-то происходит на выходе из субрутины. Если тот же кусок, что собирает program, держать там, где и юзать, то всё нормально.
Этот способ вытащить контекст и девайсы из уже собранной program я взял с ютуба. И повторюсь, на другом компе проблемы нет. Тоже стоит Intel OpenCL SDK. И даже там материлась, что OpenCL драйвера.
Наверное, не стоит замарачиваться на эту тему, а делать по канону. Я в OpenCL первые выходные.
>>941978 >java настолько пиздата Другой язык с другой сферой применения, твой друг ебанутый шизик, можешь его уебать. Но вообще, для вкатывания джава попроще, поэтому унтерменьши ее больше котируют
>>941995 Очень советую книжку OpenCL programming guide. Написана понятно, примеров достаточно, покрывает всё, что нужно. При этом первая половина - фактически, понятным языком изложенный стандарт. Вторая половина - решение реальных практических задач с полным разбором.
>>942008 Что сложного? Две функции - для превращения символа в массив и обратно. В первом случае мы смотрим значение каждого бита (через побитовое И) и пихаем в нужную ячейку. Во втором - ставим каждый элемент массива на нужное место в символе через сдвиги. Сдвиги и побитовые операции в школе проходят.
>>942010 Как минимум весь тырпрайз на нем, иногда бекенд, ну и андроид. Это основные области, иногда что-то другое на нем пишут(вон майнкрафт на джаве, есть утилитка для отрисовки графов ну и тд)
>>942018 Блять, ну кароче остальное - это ит отделы в банках, где ты будешь исправлять баги в коде, написанном 30 лет назад, делать запросы к базам данных и подтверждать транзакции. Только ебанутый согласиться делать это в здравом уме, но там обычно дохуя платят, поэтому многие туда и идут.
Почаны, такой вопрос. Есть стурктура structA, внутри которой присутствует массив CArray
если массив задавать через поинтер, то возникают проблемы при присвоении одной переменной типа structA другой переменной того же типа, потому как первая трется (допустим, она задается в классе, который в итоге разрушается, а мне надо из этого класса ее вынуть) и в итоге поинтер указывает на неверный адрес.
но при этом, если массив задать напрямую, то начинается полный расколбас с function "structA::structA(const structA&)" (declared implicitly) cannot be referenced -- it is a deleted function Причем тут конструктор, я не очень понял. Возникает такая фигня, например, когда я пытаюсь передать переменную типа structA в виде параметра функции. Причем при создании самой функции компилятор молчит, но при попытке применить эту функцию и запихнуть в нее переменную, тут же ругается.
Что можно вообще в этом случае сделать? memcpy по возможности хотелось бы избежать (к тому же я пробовал и оно не копировало всю память). Как полностью присвоить значения одной переменной другой переменной такого же типа.
Кстати, я еще пытался переписать operator=, но это тоже ничего не дало.
Есть, конечно, вариант написать функцию, которая перенесет значения из одной переменной типа structA в другую по одной переменной, но это попахивает онанизмом.
Где-то видел предложение вместо CArray использовать vector, но не понимаю чем это может помочь, пока еще не пробовал.
Ты дегенерат? как виртуальная машина Java может быть написана на Java, если языка Java без виртуальной машины которая транслирует его в байткод не существует? JVM написана на С/С++.
Сам язык Java может быть написан на Java, как С# написан на C#.
По ходу работы программы создаётся довольно много весьма массивных stl-объектов типа векторов и unordered_set. Хочу выпиливать их и освобождать память после того, как они становятся ненужными. Как правильно сделать? Умеет ли компилер (gcc) это оптимизировать?
>>942085 Очередной тупорылый выблядок порвался. Открой википедию и почитай. Нет блять, надо совать свое важное мнение не удосужившись элементарно потратить 2 минуты времени на поиск информации. По твоему все компиляторы с++ написаны на с, а с - на ассемблере?
>>942132 Не оператор, а конструктор копирования (и перемещения). Запомни, если у тебя в классе есть указатель или массив, то тебе обязательно нужно создать свой конструктор копирования.
Посоны, такой вопрос. Город - DC2. Ща думаю ливать из своей конторы зп 45 - ни о чем и искать новую работу.
3 года плюсов в проекте с хорошей кодовой базой критичная область, говнокодить там было нельзя, выдрачивали производительность вплоть до ассемблерных вставок, так что умение писать рабочий и читабельный код есть.
Скиллы - c++11/14, Qt,OpenCL, OpenCV, вся периферическая обвязка (bash, cmake/make, valgrind, и т.д.) Помимо этого относительно неплохо знаю питон (в основном, правда, юзаю numpy/scipy/matplotlib) и хаскель (какой-нибудь трансформер монады могу на бумажке накатать). Если нужно, могу работать с асм х86, хотя его я больше читаю, чем пишу. С алгоритмами тоже неплохо - структуры данных, графы, деревья, немного компрессии и криптографии - все это есть.
На какую зп могу рассчитывать, куда стоит смотреть? Пока что поглядываю на Яндекс.
Желательно мнение тех, кто реально проводит собеседования или недавно их прошел.
Выяснил следующее, для массивов, включенных в класс(структуру), заданных напрямую, нужно перегружать оператор присваивания (перегрузки одного лишь конструктора копирования ему оказалось мало), для массивов внутри класса(структуры), заданных указателем - конструктор копирования.
В итоге у меня все получилось, еще раз спасибо анону, который мне подсказал.
>>942196 Слышал, что в яндексе даже сеньйоры не шибко много получают. Сомневаюсь, что там ты будешь получать больше, чем сейчас. Но зато получишь опыт работы и твое резюме повысится в цене
Ребзи, почти как два года зарабатываю тем, что пишу на крестах с Qt. Куда податься(сфера)? Что востребовано забугром? Смотрю вакансии на релокейт: всё очень грустно.
>>942587 За бугром в основном востребован либо эмбед, либо high-frequency trading. Обычный general C++ и, тем более, QT - редкость. Либо задрачивай лоулевел и алгоритмы, и перекатывайся. Либо, я хз, джаву выучи, на похожа на qt.
>>942592 А что на счет геймдев компаний, например? Движки же разные на плюсах пишут. Еще разные амуде-штеуд-нвидиа, по идее там все должны на си писать. Или там своих вкатывальщиков хватает?
>>942611 Я не тот анон, что на QT пишет. Я студентота нормального вуза в ДС, в этом году получаю диплом(поиск дефектов в исполняемом коде). Сам дипломчик пишу на чистой джаве. Джава нравится, мб даже бы вкатился и разобрался с фреймворками, но не хочу тратить всю жизнь на тырпрайз хуйню. В свободное время пишу на сишечке/питоне/плюсах разные маленькие программки(позадротил некоторые алгоритмы, писал генерацию лабиринтов, игру жизнь, разные тетрисы-змейки с аски-графикой, телеграм ботов ну и тд). Есть шанс за оставшиеся полгода подзадротить С и попытаться джуном(или хотя бы на стажировку) устроиться за бугор? Алсо, с чего начинать учить микроконтроллеры(asm86/86-64 понимаю, ибо в работе с дипломом приходится много кода читать на асме, устройство процессора примерно представляю)? Последние две недели думаю купить себе малинку.
>>942630 1. За полгода без опыта за бугор - очень вряд ли. Джунам визы обычно не спонсируют. Разве что если ты покажешь себя как гения индустрии. Иначе - разве что если сам получишь визу с разрешением на работу а сам ты её не получишь. 2. В контроллеры с малинки вкатываться не советую, там больше линукса, чем embedded. Закажи какую-нибудь stm32f4discovery с али (или купи в ближайшем Чип&Дип, если ждать не хочешь), да пиши под неё. Поморгай светодоидами, потом шимом серву покрути, потом на ADC замути электронный термометр. Затем купи всяких датчиков и через взаимодействие с ними изучи стандартные протоколы - UART, I2C, SPI и иже с ними. Этого зачастую достаточно, чтобы получить место.
>>942640 По контроллерам, если честно, книг я не читал. Как правило, в reference manual всё написано достаточно подробно и логично. Ну, можешь easyelectronics почитать про концепции в целом, там в общих чертах все описано довольно неплохо.
>>942466 У решарпера хинты накладываются на стуюиевские, с этим я нихуя не смог поделать. Алсо он люто тормозит, в C# с ним заебись, но на крестах я вообще охуел от того вреда, который он приносит, нежели чем от его пользы.
>>942779 В основном основы схемотехники, и то не обязательно. Если понимаешь, зачем тут воткнут резистор, а тут - конденсатор, то все ок. Проектированием плат заниматься будут инженеры, ты в основном будешь писать код.
Сук, мне уже пичот. В гугле пусто, в мануале на офф сайте - тоже.
Да, хотелось бы юзать вижуал студию, но на данный момент в распоряжении имеется недоноутбук, который улетит в силиконовую долину, как только я попытаюсь запустить тут VS
>>943046 Хотел креатор, который юзал ещё из под юникса, но установщик предложил скачать 20гб, что меня немного смутило. Повторюсь, ноутбук полное дерьмо. Он еле держит 4 вкладки в огнелисе, по этому решил ограничиться минималистичной IDE.
>>931827 (OP) Есть строка русских символов и вектор позиций в этой строке. По этим позициям мне нужно построить слово в юникоде и вывести на консоль. Как это сделать? Почему в моем коде ничего не выводится? Пробовал += и push_back, но структуры данных не заполняются и ничего не выводится.
>>943285 >>943286 Не пони. В конце функции main я конвертирую вектор позиций в строку, а потом вывожу эту строку, но на экране нет ничего. И почему в строке std::wcout << L"sym: " << alpha[code] << std::endl; выводятся позиции, а не символы?
Плюсач, я накодил класс-обертку для post запросов. В QNetworkRequest кладутся все необходимые данные, QNetworkAccessManager это все посылает на заданный сервер, QNetworkReply получает ответ с сервера. Все охуенно работает, пока я не пытаюсь послать несколько запросов за малый промежуток времени - тогда результаты нестабильно приходят. Есть ли метод останавливать запросы, чтобы послать обновленные?
Я тоже залип. В плюсах не новичок, но: 1) https://ideone.com/ePOaJQ - идеоне не осиливает юникод. 2) Эта же шняга не работает и у меня тоже: выводится alphaBEGIN.
То есть, как ты ни извращайся, напечатать вчары ты не сможешь, если фаза луны не та. На SO пишут, что не смогу напечатать символы, которых в локали нет - пиздёж, у меня даже урсские строки не печатает.
Короче: видно, что ты хочешь написать "правильно". Ответ: - если пишешь под винду, используй WriteConsoleW или что-то там. - если пишешь кроссплатформенно, используй Qt
Объясните дауну, что происходит. Очень надо разобраться, что не так с этим кодом, по задумке он должен заполнять квадрат (двумерный массив) по алгоритму числами от 1 до n^2, где n - не четная (и, вроде как, не кратная 3) сторона квадрата то есть массив [n][n]. Сторона квадрата должна передаваться аргументом командной строки вызова функции то есть два аргумениа ./a.out n. Все бы ничего, но случается пикрил 1. То есть, как вы догадались, программа запускается, я могу писать, что хочу, но нихуя не происходит, завершить программу могу только нажав ctrl_Z. Прочитал код (пикрил 2 - 5), вроде все нормально, но что-то с ним явно не так. в плюсах я ньюфаг
>>943580 Пикрил 5 Забыл написать, что когда пишу просто ./a.out, пишет, что недостаточно аргументов (то есть в этом случае прога работает как надо). Отладочные выводы (putchar('1')) тоже пихал в разные места, выводит только в случае недостатка аргументов строки вызова и только те единички, которые я писал в мэйне до кода, отвечающего за проверку числа аргументов командной строки.
Hello гайз, посоветуйте, что написать, чтобы не стыдно было показать на собеседовании (могу в qt например), так как никакого опыта работы у меня еще нет, учусь в универе 3 курс. Т.е. мне интересно за какие проекты надо мной хотя бы не будут угорать на интервью
>>943591 Свой компилятор на С: без всяких яков, а сам пишешь фронт(лексер, разбор АСТ дерево), и бек - трансляцию дерева в бинарный код(смотришь как устроены бинарники и по шаблону генеришь свой). В промежуточном этапе делаешь оптимизации и разные распределения регистров и тд. Когда сможешь компилировать любой более-менее сурьезный код, пишешь линковщика. Если скомпилишь стд либ, то на собеседовании охуеют(ну если там не типичные долбоебы-олимпеднике, которые будут спрашивать балансировку красно-черного дерева). Но даже если сделаешь небольшой компилятор(скажем 80% покрытия языка, т.к. С достаточно маленький, то это вполне реально сделать), то все равно норм, заодно разберешься как там все работает. А так вообще похуй что писать - от любой игры-платформера до рисовальщика графа друзей Впаше. Даже банальный калькулятор можно раздуть до размеров вольфрама(кстати, символьное дифференцирование несложно реализовать, решения некоторых диффуров тоже можно по шаблону запилить ну и тд).
>>943580 Я бы постеснялся с таким заданием идти в C++ тред и просить помощи. Выглядит так, как будто ты при первой же проблеме кричишь, что ничего не выходит. Без обид. p.s. Для подобной задачи действительно нужен класс?
>>931827 (OP) Подходит ли Qt для мобильной разработки? Write once build everywhere действует? Как дела с лицензией? Есть ли нормальные приложения в макете, написанные на Qt?
Цель: написать приложение для android и iOS. React-native не хочу, отдельно под каждую платформу пытались писать, слишком затратно.
>>943658 Ну я же не говорю решить задание за меня. Мне надо лишь понять, почему такая хуйня происходит. Класс для подобной задачи действительно не нужен, но в задании указано реализовать класс. >>943673 Нет.
Вообще совет, на самом деле, дельный. Однако хорошенько подумай, ибо вероятность того, что замахнувшись на компилятор, ты лишь отобьешь себе желание чото ещё кодить, крайне высока. Если всё же решишься - в помощь тебе книга Ахо, Сети, Ульман - Компиляторы: принципы, технологии и инструменты. Написана годно и считается классикой в отрасли.
А вообще я бы советовал чонить сетевое. Простенький HTTP-сервер, например. TCP/IP везде нужно, и если ты покажешь, что умеешь в кресты и работать с сокетами - то это два плюса тебе одновременно. Ну и пишется не так запарно, как компилятор.
Только начал изучать срр и все никак не могу понять зачем нужны указатели? Разве не проще вместо указателя использовать переменную на которую он указывает?
>>943797 > зачем нужны указатели Они есть в машинных кодах. Такая архитектура процессора. Это не какая-то выдуманная сущность, над которой ебались что-бы ее ввести в язык. Это низкоуровневая хуита, над которой построена небольшая прослойка абстракции (арифметика указателей). Ебаться нужно было чтобы ее скрыть от программиста (но при этом оставить нужный функционал - в первую очередь это низкоуровневые "массивы", и динамически выделяемая память, но не только). А так как при проектировании языка С при выборе из двух вариантов: "ебаться с реализацией" и "нихуя не делать" - в 99% случаев принципиально выбирался второй вариант, то указатели попали в язык. А С++ базировался на С.
>>943797 >вместо указателя использовать переменную на которую он указывает? Переменная А и будет содержать указатель (адрес) на то место, где лежит значение.
1) ты можешь иметь глобальные переменные и функции, которые не видно - помогает поддерживать разделение задач 2) можно компилировать только изменившиеся .cpp-файлы - это быстрее, чем компилировать заново вообще весь код, который инклудит один изменившийся .cpp-файл. Линковка всё равно произойдёт снова, разумеется 3) тебе не нужно будет создавать третий файл для описания интерфейса к либе, которую ты пишешь
>>943699 Меня настораживает этот пункт в соглашении LGPL: >> In case of dynamic linking, it is possible, but not mandatory, to keep application source code proprietary as long as it is “work that uses the library” – typically achieved via dynamic linking of the library. In case of static linking of the library, the application itself may no longer be “work that uses the library” and thus become subject to LGPL. It is recommended to either link dynamically, or provide the application source code to the user under LGPL.
По идее, вся куча нативного и явовского дерьма заворачивается в один общий APK-файл, но подключение библиотек выполняется динамически.
>> The user of an application or device created with LGPL library has to be notified of their rights by providing a copy of the LGPL license text to the user and displaying a prominent notice about using the LGPL library – i.e. it is not allowed to hide the fact the LGPL library is used.
В дополнение еще и вот такое обязательство, то есть в интерфейсе твоей программы должна быть возможность посмотреть, кого ты обязан поблагодарить и за что именно.
Алсо кто бы как ни рекламировал QML, но на деле, куча их компонентов так весело забагованы, что никто даже не спешит их править, новое дерьмо добавляется, а старые ошибки, причем достаточно серьезные исправлять они не спешат. Чего только стоит замусоривание элементов управления.
Кто-нибудь шарит в qt а именно в qml. Как ресайзить окно без рамки. Запилил mousearea но суть в том что когда тянешь окошко, оно начинает дико моргать потому что: onMouseXChanged: { var dx = mouse.x - clickPos.x; appWidth = appWidth - dx; //здесь он перерисовывает thisApp.x = thisApp.x + dx;//здесь опять перерисовывает }
Так вот как я понял моргает потому что сначала он ресайзит ширину окна appWidth - dx, а потом еще смещает положение x окна. Как хитро провернуть это дельце и выполнить все в один момент, чтобы он не перерисовывал лишний раз окно. Гуглил все что мог, внятного ответа не нашел. Если скажите про двойную буферизацию то сразу с примерами реализации
Подразумевается симуляция бесконечной памяти - ты создаёшь оббое количество объектов, а программа во врем выполнения сама решает, какие их них уже точно-точно никогда не понадобятся.
>>944133 Удаляются объекты на которые не указывает ни одна ссылка, то есть их больше никак нельзя использовать. В С++ сборки нет, поэтому если ты выделил память под объект то, должен будешь вручную её освободить, или он будет висеть в памяти до самого конца.
Раньще, т.е. очень-очень давно таких проблем не было. да-да, упражнения из учебника.
При запуске программы пользователю нужно вводить энное количество чисел. Но вместо этого после запуска я вижу окно с Press any key
На ideone можно было во вкладку input засунуть нужные значения и всё, что меня вполне устраивало, но сейчас дальше по книжке работа с классами, где нужно аттачить хеадер, так что хочу всё же разобраться с IDE. Это CodeLite, btw
>>944436 > нужно аттачить хеадер Ничего не нужно. Разбиение на файлы условность для более удобной компиляции больших проектов. Весь код можно вкинуть в один файл и все будет заебись. Такой подход иногда используется для небольших библиотек (header only library). Алсо реализацию функций тоже можно ебашить сразу в определении класса, прямо как в джаве А по вопросу - попробуй найти откомпилированую программу (скорее всего заголовок окна) и запустить из командной строки - возможно твоя IDE делает что-то плохое с стандартным потоком ввода, хотя это странно очень.
Аноны, можно ли добиться полиморфизма, если передавать объект по значению? Например, так: привести объект к типу int, взять первые 4 байта, сказать, что это указатель на нужную функцию и вызвать ее, передав первым аргументом ссылку на этот объект? Про срезку слышал, но если объекты базового и наследуемого класса равны по размеру все должно быть ок, не? http://pastebin.com/NEjXWMw8
но у меня сегфаулт, в чем проблема? просто изучаю возможности с++, нигде в продакшене такое офк использовать не дадут
>>945002 Так какой слайсинг, если у объектов нихуя нет, кроме таблицы виртуальных функций? Алсо, почему они не определены? Это же просто куча байт в памяти, я привел к другому типу и уже вроде как не vtable. Точно так же можно получать доступ к приватным полям.
>>944981 Работая с объектами по значению полиморфизм не возможен. При выполнении "Base obj = <хуйня>;" вся хуйня с правой стороны будет приведена к типу Base. Если у функции есть параметр типа Base - все что ты туда засунешь будет приведено к типу Base (если такое приведение возможно, иначе ошибка) - с соответствующими модификациями таблицы vtable - тоесть попытки прочитать таблицу в "ручную" нихуя не дадут. Чего ты собрался добиться указателем на функцию не ясно (в смысле совсем не ясно, ни единой идеи). Если ты решил что в первых четырех байтах лежит указатель на функцию Test() (что вполне вероятно, на 32 системе) то тебе нужно было кастить его к указателю на функцию с сигнатурой аналогичной Test() (в твоем случае без аргументов) и вызывать ее (без аргументов). Но как упоминалось, даже если ты правильно определишь указатель на виртуальную функцию, это не поможет так как указатель был заменен при приведении объекта к типу Base, так как он передавался по значению. В твоем случае проблема (скорее всего) в том что твой указатель на функцию указывает куда-то в ебеня (скажем ты прочитал только первые или последние 4 байта восьмибайтового указателя, так как система 64) и ОС пиздит твою программу за попытки получить доступ по адресам которые тебе не выдавались. Либо из-за несовпадения сигнатур функций - честно говоря не знаю что в таком случае будет.
есть вероятность и где я поем говнеца, если вместо рассового #include <cstdint> буду постаринке инклюдить сишный stdint.h? Вопрос и про прочие сишные хедеры
>>945222 Зависит от хедера. Самая очевидная проблема что функции С и С++ по разному линкуются (имеется ввиду name mangling). Поэтому сишные функции нужно оборачивать в exern "C" - твой хедер может ожидать что его решат компилить плюсовым компилятором и добавлять это когда нужно. А может не ожидать и тогда нихуя слинкуется, так как линкер не найдет имена функций в объектном файле библиотеки. Ну и там могут нюансы быть, если не именно stdint.h, а взять какой-то древний хедер. Там разная хуйня может вылезти - к примеру auto это же ключевое слово С, и если на него вдруг наткнуться то неприятно будет, хотя конечно в хедере оно врядли встретится, если его вообще кто-то использовал.
Привет, к вам два вопроса: Какого хуя выдает ошибку stack smashing detected? http://ideone.com/h3C8HS Какого хуя появляется сeгафолт, если я ввожу ./a.out 22:46 26:82, сомнваюсь, что ошибка в ссканфе? Видел программу, где разные типы данных ссканфом считывались в два массива и один из них был целочисленного типа. http://ideone.com/GPkkfI?
>>945436 >char time1[8]; >char time2[8]; не забывай, что и на нолик в конце надо байтик памяти. И явно твой if пропускает длинные строки. Там у тебя везде жёсткий &&
>>945104 >в твоем случае без аргументов Но ведь все методы имеют первый неявный аргумент - указатель на этот самый объект. Поэтому я и пытался вызвать функцию с адресом искомого объекта >в первых четырех байтах У меня sizeof int и sizeof указатель - совпадают(8 байт)
>>945467 >не забывай, что и на нолик в конце надо байтик памяти. Блин, спасибо, не учел. А то, что длинные строки пропускаются, это нормально, так и надо. >>945468 Спасибо. >>945475 Ок, благодарю.
>>945611 Так я же привожу ту хуйню, которая у меня занимает первые 8 байт в объекте к типу указатель на указатель на функцию, которая принимает единственный аргумент - указатель на объект. Алсо, правильно ли я понимаю, что объект Child хранится в памяти(пусть будет стек) как [vptr:Base:Child], т.е. хранится сначала вптр, потом потроха базового класса, а потом уже все остальное от наследующего класса? В таком случае каст от Child к Base получается простым отбрасыванием части, которая хранит Child, при этом vptr остается тем же.
>>945683 Ладно, я вроде понял в чем проблема. При вызове функции, вызывается конструктор копирования Base, который создает новую копию, но при копировании сам vptr не копируется, а создается новый для объекта Base. Поэтому даже при вызове виртуальной функции напрямую, вызвалась бы функция для Base. Походу для осуществления такой штуки, нужно определять конструктор копирования, где объект будет тупо по байтам переноситься в новый
>>945770 Дальше тебе нужно ебаться с поинтерами на функции. Компилятор может оптимизировать вызовы виртуальных функций. В случаях когда возможно гарантировано определить класс объекта во время компиляции то поиска по vtable не происходит и вызывается нужный метод класса. А когда аргумент функции имеет тип класса (а не ссылки или указателя на класс) - то компилятор вправе считать что там находится именно указанный класс (так как все что туда положат должно быть конвертировано в указанный класс).
>>945915 > Зачем Чтобы иметь возможность использовать литералы состоящие не только из обычных символов и цифр. С флоатом - могут вызыватся разные функции, если есть перегрузка функций как для флоат, так и для даблов.
>pic кто объяснит, почему под code::blocks без этого не линкуется, а студии как бы пофиг? Кароч, надо не только glew32 и glew32s в настройках прописать, но и #define GLEW_STATIC в сурсе.
>>946243 >то есть те же redistributable надо полюбасу, да? Сам раскопал. - либо линковать статически в студии, включив c++ redistributable в экзешник - либо юзать mingw и прочие гцц
Анон, подскажи как работать с данными, тип которых не определён заранее. Пишу игрушечную базу данных на C++Qt (правда всякие йоба-средства Qt использовать не хотелось бы). Таблица хранится в файле, в начале файла храниться схема отношения (шапка таблицы с именами и типами полей) и дальше лежат записи. Так вот, как с записями работу организовывать? Писать отдельные классы для обработки полей разных типов, с общим родительским абстрактным классом?
Утонувший:https://2ch.hk/pr/res/904165.html