Ууу, пидоры, целый день убил, чтоб на вашем языке написать сортировку рюзких слов в кококонсоли без учёта регистра. Такое чувство, будто в каменный век попал.
>>462978 >>463002 да тащемто и без Qt можно компаратор в сорт запихнуть. а русский язык, да, имеет смысл только в gui а в большинстве библиотек для гуи (например Qt) он поддерживается.
[code lang="cpp"]const char* alphab[2] ={{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"},{"abcdefghijklmnopqrstuvwxyz"}};[/code] Это же массив из указателей на константу типа char, правильно? Почему тогда инициализация сработала? Это ведь два объекта типа string, а не указатели.
Делаешь для них ебучие костыли над дрисней макаки, а они не хотят, хотят жрать говно. >>463026 Потому что синтаксический сахар. Точно так же, как ты можешь передать массив в функцию, принимающую указатель. [code lang="cpp"] char a[] = "shitting on your face"; int f(char ) { /banging your mum here*/ } f(a); [/code]
>>463076 То есть по сути происходит взятие адреса первого элемента: [code lang="cpp"] const char *c = &"fgsfds"[0]; [/code] (Обрати внимание на const, без него логично что не дает сконпелировать.)
ААААААААААА БЛЯДЬ ДА ЧТОЖ ТАКОЕ СУКА ПОЧЕМУ В ВАШИХ БАЙТАХ НИХУЯ НЕ ТАК КАК В ДЖАВЕ БЛЯДЬ ПОЧЕМУ НЕЛЬЗЯ ПОДРУЖИТЬ TEMPLATE КЛАСС С ДРУГИМИ КЛАССАМИ ПОЧЕМУ ДРУЖБА НЕ НАСЛЕДУЕТСЯ ПОЧЕМУ НЕЛЬЗЯ СОЗДАТЬ МАССИВ ИЗ TEMPLATE КЛАССОВ БЕЗ ЕБАНИЯ БАЙТОВ ПОЧЕМУ В ДЖАВЕ ТАКИЕ ПИЗДАТЫЕ ГЕНЕРИКИ А В СИПЛЮСПЛЮС УЁБСКИЕ ТЕМПЛАТЫ КОТОРЫХ Я РОТ ЕБАЛ БЛЯДЬ ПОЧЕМУ НЕЛЬЗЯ СДЕЛАТЬ КАК ГЕНЕРИКИ НУ НАХУЯ ТАКИЕ УБОГИЕ ТЕМПЛАТЫ Я ЕБАЛ БЛЯДЬ КАК У МЕНЯ ГОРИТ ВСЕ ПРОБЛЕМЫ ИЗ-ЗА ЭТИХ ТЕМПЛАТОВ СУКА
Вопрос: Как сделать доступными private поля из какого-нибудь класса для какого-нибудь template-класса? Если делаю friend class ITemplateClass, то есть для интерфейса этого template-класса, из которого он расширяется, то нихуя не работает. Потому что friend на наследуемые классы не работает. Как решить проблему?
Вот знаете что. Наш завсегдатай Кьютэгосподин хуйню не несет. Сегодня нам в вузике поясняли за Qt, и мне чертовски это понравилось. Сам я с ним был знаком очень слабо - правил некоторые программки, запускал примеры, однако за 2 пары на пояснили основные концепции.
Охуенный фреймворк, очень нравится. Совсем по-другому на него посмотрел. Впрочем, это вовсе не значит, что я брошусь писать код на нем. Все, конечно, охуенно, но я нахожусь на стадии обучения и, как следствие, нуждаюсь в разборе задач и самолично реализовывать их. Однако откладывать в долгий ящик не буду - буду допиливать своим йоба приложениям всякие GUI и прочие ништяки.
Что-то я читаю про функторы и их отличие от указателей на функции и ни черта не понимаю. Что за сверхъестественная сила мешает инлайнить функции?
Я предположил, что код наподобие [code]{ int () *lol; lol=main();[/code] скрывает тело функции, и её уже фиг заинлайнишь. Но объясните мне, неужели нельзя инлайнить то, что названо индентификатором? Нафига мне объявлять структуру только для того, чтобы передаваемые функции инлайнились?
Я только сейчас понял, что qt звучит как cute или cutie, годное название. Я хочу разработать свою бд и назвать её qpdb - лого будет джва хуя - один висячий, другой стоячий. Идеальное название для бд.
>>463447 Любишь пердолиться с too::many::namespaces::and::even::move, да? Или с шаблонодрисней на 9000 строк вместо нормальной метакомпиляторной рефлексии? Говноедство же.
>>463469 Вот когда сделаешь, тогда и приходи. Посмотрю я, как ты реализуешь рефлексию на крестах без метакомпилятора. Единственная существующая альтернатива кьюту в виде буста использует как раз отвратительные километровые шаблоны и почти такие же длинные нэймспэйсы. А в плане гуёв альтернативы вообще нет. Поделки типа wxWidgets даже рассматривать не вижу смысла.
>>463482 Ты количество классов видел? Нахуя там нэймспэйсы? Тем более что названия всех классов начинаются с Q, а значит, они не пересекутся с классами из других библиотек. Если же таки пересекутся, то можно задать, чтобы все кьютовые классы помещались в нэймспэйс (вроде при конпеляции задается, а может и простым дефайном, точно не помню, т.к. не пробовал).
>>463490 Настроения нет. Борду вот писал-писал, а там кроме полутора человек никого и нет. Ну и потом мне диплом писать нужно, а еще я на днях купил геймпад и познал все прелести игры лежа на диване, ну и как последний штрих к картине - завтра выходит жта5 для пеки. В общем не хочу пока что, не все же код дрочить.
>>463493 Да ладно, я так. Поинтересоваться. Сам ничего не успеваю. Пришел сегодня, хотел запилить мой LaTeX chaining механизм, но вместо этого заснул. Да и в универе завал.
твой-скромный-подпиздчик, который роется в твоих исходниках, аки грязном белье
>>463496 Все меняется и развивается. То, что не развивается, рано или поздно умрет. Особо годные вещи, правда, могут прожить довольно долго, это да (тот же TeX). >>463497 >LaTeX chaining механизм Расскажешь поподробнее?
>>463499 >Расскажешь поподробнее? Да я уже писал. Мне надо было сгенерировать LaTeX документ из данных программы. Я дико торопился, поэтому пидор прямо из кода все.
Генерировать надо было довольно большой файл, он был абсолютно не читаем, а также я дико заебался его дебажить, ибо все время проебывал какую-нибудь хуйню.
Поэтому я решил написать какой-нибудь класс, который упрощает эту работу. А именно я вспомнил про chaining pattern, который позволяет сделать мне ништяковую вещь.
>>463491 > Ты количество классов видел? Видел. У неймспейсов появилось ограничение на количество классов или что? > Нахуя там нэймспэйсы? Тем более что названия всех классов начинаются с Q, а значит, они не пересекутся с классами из других библиотек. Ну вот и сидели бы в отдельном неймспейсе. И без уебанский Q в начале каждого можно было бы обойтись тогда. > Если же таки пересекутся, то можно задать, чтобы все кьютовые классы помещались в нэймспэйс (вроде при конпеляции задается, а может и простым дефайном, точно не помню, т.к. не пробовал). Хули ты сразу не сказал тогда? Лишь срач разводить.
>>463595 В общем, есть один класс, Wizard. У него есть координаты, X и Y. set/get методы координат реализованы банально.
void Wizard::set_X(int a) { X+=a;
}
int Wizard::get_X() { return X;
}
Сейчас проверил - получает/выводит все нормально напрямую. Дело в том, что это у меня менюшка (пытаюсь текстовую игру написать, вот и копаюсь) есть, в которой реализуется "управление" целым отрядом. Т.е. 4-5 "магов". Код такой.
http://pastebin.com/itfAxYJD И почему-то на этом моменте cout<<"Координаты: "<<wizard[0].get_X()<<" "<<wizard[0].get_Y()<<endl; Он мне выдает неебическую хуиту с огромными цифрами. Но при этом движение идет нормально, т.е. изменяются координаты последовательно и как нужно, в зависимости от хода. ВТФ?
>>463609 Сокращай код до уровня небольшой програмки на ideone где повторяется баг, тогда может кто-то и поможет, а скорее всего ты сам разберешся. По тому коду что ты дал вроде все ок.
>>463744 Я в третью тоже не играл, был тогда школьником, все посоны играли, а я поставил и через 5 минут удалил - показалось, что унылое говно. Относительно недавно начал ходить к другу на большой плазме играть, и как-то начало нравиться. Купил себе телек, пад, предзаказал жта и доволен как слон. Заодно и в другие игры играть стал.
>>463906 Вот как, большое спасибо, анон. Извините ньюфага. Кстати говоря, программа заработала, похоже я просто где-то забыл явно проинициализировать координаты вначале.
Доброе время суток, хотелось бы узнать ваше мнение о такой штуке как статический анализатор кода. Понимаю, что большинство тут - школьники, либо люди, работаюющие над небольшими проектами и он им нафиг не нужен, однако быть может здесь сидят и гуру с++ Я вам PVS-STUDIO принес, братишки
>>464029 За xcode не знаю. Я качал плагин для MVS, там оно выделяет отдельную вкладку по вывод результатов анализа как и Cppcheck. В выводе указывается ошибка, файл и строка, где они обнаружены. Кликая по строке вывода ты сразу переходишь к строке с ошибкой. В триальной версии единственное ограничение - 10 таких кликов, можно же просто открывать вручную не кликая.
>>464288 Первая ссылка в гугле: http://www.fftw.org/ >FFTW is a C subroutine library for computing the discrete Fourier transform (DFT) in one or more dimensions, of arbitrary input size, and of both real and complex data
Решил написать сжатие zip. Постепенно углубляюсь в тему. Если правильно понял, то существует несколько кошерных библиотек аля 7zip, zlib и др. Подскажите, как качественно использовать/подключать их в VS без регистрации и смс; может есть какой-нибудь гайд или статья на хабре.
как быть с русскими символами в массивах и стрингах? Есть мысль что мне будет сложно считать строки где в перемешку русские и латинские символы. Проблема из-за того что русский символ занимает в два раза больше ячеек в массиве. Куда копать?
>>464769 А в чем проблема со считыванием, анончик? Сейчас написал helloworld, который cin'ом считывает в string и потом выводит размер и введенную строку. Ввёл ему abcdабвг - 12 байт, вывел все корректно. Тебе надо количество символов считать что ли?
Ебанутая ебанушка врывается в тред. Есть несколько строк std::string. Они петушатся в циклах. Я хочу странного: хочу, чтобы в каждой строке последний символ (который идёт до '\0') был привязан по ссылке к переменной char.
Т.е. я меняю эту переменную в цикле, а меняются все последние символы этих строк. Это возможно вообще? Как?
>>465022 > хочу, чтобы в каждой строке последний символ (который идёт до '\0') был привязан по ссылке к переменной char > реактивное программирование Проиграл с толстяка.
>>465094 Ты хуйню полную городишь. Что значит выставь? А если не выставлю, то что? В любом случае, для трех строк не получится. Можно нагородить класс-имитатор char и переопределить для него все операторы, чтобы при их вызове обновлялось значение последнего символа в указанных строках. По ссылке не сделать. [code lang="cpp"] class Char { private: std::list<std::string > strings; char c; public: explicit Char(char initialValue) { c = initialValue; } void addString(std::string s) { strings.push_back(s); (s)[s->length() - 1] = c; } operator char() const { return c; } Char &operator =(const char &other) { c = other; for (std::list<std::string >::iterator i = strings->begin(); i != strings->end(); ++i) (i)[i->length() - 1] = c; return this; } //и другие оператоы }; [/code]
>>465099 [code lang="ocaml"] let test xs = let char, set_char = S.create 'A' in List.iteri (fun i x -> S.trace (fun c -> x.[length x - 1] <- c; Printf.printf "String %d changed: %s\n" i x) char) xs;
for i = 0 to 5 do set_char (Char.chr @@ Random.int 128) done
let () = test ["Xynta1"; "Xynta2"; "Azaza"] [/code] Учись
>>464781 Вот если взять вашу строку string strr {"abcdабвг"}, и например по заданию надо вывести на экран шестой по порядку символ. Как ни хотелось бы, но нельзя написать так: cout<<strr[6]; Мне приходится писать cout<< strr[7]<<strr[8]; Хотя если бы я писал только на латнице проблем не было бы.
Посоны, я могу в английский на уровне чтения, но не на уровне придумывания понятных названий.
Есть две compile-time функции (как это называется правильно?), определяющие является ли тип А базовым для Б Первая убирает все типовые модификаторы и сравнивает результаты, а вторая ничего не убирает и сравнивает, к примеру, A & с B & и т.д. Как их назвать? Алсо, почему еще важен порядок хуевин из std::type_traits? compile-time быдло
>>465351 > Чем отличается L"строка" от u"строка"? Второе в utf-8 вроде как. > Почему wchar_t 4 байта на линуксе и 2 байта на винде? Первое — UCS-4, второе — скорее всего рак по имени UTF-16.
Программач, подскажи насчет архитектуры. У меня в приложении есть один вью и две модельки, которые в него отображаются. Каждой модельке соответствует своя менюшка в виде отдельного модального окна. Залупа в том, что с одной стороны надо объединять менюшки с моделями в пары, с другой -- менюшки это явно интерфейс, то есть нужно их объединять с вью.
Как их все-таки лучше разложить в плане архитектуры?
Сам, С++-ч, разберите, пожалуйста, что делает эта функция (нашел в интернетах). Желательно по строчкам. Что за структура termios? Почему экземпляры созданы как struct termios ..., а не просто termios ...? Что за tcgetattr и тильда? Зачем нужна эта функция и чем она лучше стандартных функций ввода? [code]int getche() { char ch; struct termios oldt, newt; tcgetattr( STDIN_FILENO, &oldt ); newt = oldt; newt.c_lflag &= ~( ICANON | ECHO ); tcsetattr( STDIN_FILENO, TCSANOW, &newt ); ch = getchar(); tcsetattr( STDIN_FILENO, TCSANOW, &oldt ); cout << ch; return ch; }[/code]
>>465396 > Что за структура termios? Пользовательский тип, может быть что угодно. > Почему экземпляры созданы как struct Старый синтаксис от Си, оставлен для совмесимости, скорее всего сипользуется сишная библиотека и в примерах дан сишный синтаксис который и был скопипащен > Что за tcgetattr Наверное заполняет структуру > чем она лучше стандартных функций ввода Стандартные функции не заполнят пользователский тип данных без перегрузки, а tcgetattr уже есть (если это действительно сишная библиотека) > тильда Побитовое отрицание
>>465395 То есть, ты предлагаешь делать модули меню-модель и привязывать отображение модели к тому, какое меню сейчас используется? Грубо говоря, меню тянет за собой модель?
>>465411 Я неправильно сформулировал. Расскажу подробнее. Представь себе игорь. В нем есть главное меню, где сверху менюшка с кнопками, а сзади что-то интересное происходит для красоты, и есть непосредственно игровой процесс, где тоже можно вызвать меню нажатием на эскейп. То есть, модель на меню не завязана ничем, кроме соответствия меню модели. При этом меню очевидно является дочерним окном окна-отображения. Но хочется все-таки четко задать связь меню и модели, потому что может понадобиться сделать, например, третью пару для редактора уровней или там окно загрузки сделать отдельной парой. Как-то так.
>>465396 Это перевод терминала в не каноничный режим, не оч врубую какой смысл без c_cc[VMIN] = 0 ; .c_cc[VTIME] = 0 ; так как с ним получится неблокирующее получение ввода.
Но а так получается что убирается эхо, то есть не видно ввода на терминале, ну и не ждёт пока пользователь нажмёт пробел, символ напечатан - сразу получили. Вроде как.
антоны, есть тут те кто работал с winapi ? надо запилить текст с верхним подчеркиванием, проблема в том что в Window xp символ верхнего подчеркивания(U+00AF, U+0305) не отображается или отображается справа от символа (а не над ним) алсо в функции CreateFont можно создать текст только с нижним подчеркиванием
>>465493 Напиши говнокостыль, в котором ты будешь рисовать нужный тебе текст, а над ним руками рисовать линию нужной толщины для нужного размера шрифта. Или гугли на codeproject.
Я тут немного в процессе изучения этого вашего С++. Есть три класса: class A { virtual method1()=0; virtual method2()=0;
}
class B { method1() {} }
class C : public A, public B { method2(){} }
Компилятор говорит, что класс С - абстрактный, так как нет реализации method1. Но ведь я вроде как наследую её из класса B, нет? Как избавиться от этой ошибки?
>>465514 Не слушай этого >>465515, тебе нужен метакомпилятор парадигм. Поставь сборку винды от Zver, там в комплекте идет, еще и анафорическая проверка синтаксиса будет, вообще збс.
>>465530 >Б не реализует его целиком Анон же тебе написал, В не имеет никакого отношения к А вообще, хоть у них там и имена методов одинаковые - сами методы разные, потому-что один объявлен в А, второй в В.
>>465550 В общем, даже лень тебе что-то объяснять. Таких, как ты — миллионы, серых и отвратительных, как плевки на асфальте. Приходящих сюда ежедневно с ведром грязной воды, которой мыли полы, бла-бла-бла. Уебывай, короче.
>>465577 >Пиши на ассемблере, хули, раз такой экономный Зачем на ассемблере, у меня свой рендер написан на OpenGL, с хинтингом и сабпикселями. 11 килобайт исходников включая шейдеры.
>>465606 >Что за оболочка такая? Gnome 3 >А в чем разница, если что одно, что другое качается не больше пары секунд? 100 мегабайт кутишных либ будут качаться далеко не пару секунд, особенно через 2g.
>>465610 >Небось падает постоянно или жрет память, как прокаженный, да? Это от дров на видео зависит. У меня на интеле очень редко падает, жрет умеренно и не течет.
Олсо, посоветуйте какой-нибудь актуальный ноутбук под шлинкусы? Только чтобы кинцо посмотреть можно было в хорошем в разрешении. В игори практически не играю, а если и играю, то в инди-парашу.
>>465609 Было 50, теперь уже сто, да? Дальше гигабайт скажешь? Средненькое приложение на Qt4 без вебкита тянет около 15-20 МБ зависимостей. Алсо, >2g Ты бы еще через 56 КБ/с модем сидел.
>>465623 >А сейчас скачай Dependency Walker и посмотри насколько твоя программа "минимальна" Я статически все собираю. Под виндой внешние зависимости только -lopengl32 -luser32 -lkernel32 -lglu32 -lgdi32
>>465636 >Что за просмотрщик? Это программа лол >Почему мой nautilus так не умеет? Может потому, что у меня 3.16? >Поделись библиотекой Библиотеки еще нет. Когда оформлю все нормально, выложу скорее всего.
>>465508 дело в том что мне надо рисовать линию только над одной буквой, остальные же должны быть без подчеркивания а это уже довольно нетривиальная задача, поэтому собственно и спрашивал
>>465627 Ты что-то делаешь не так. Даже на 5 кьюте у меня больше 50 с вебкитом не было. >>465633 А нахуя тебе качать что-то через мобильный интернет? И да, даже в моей мухосрани уже 4ж давно тестируют.
>>465644 >Даже на 5 кьюте у меня больше 50 с вебкитом не было Сейчас посмотрел, на 5.0.2 Core + Widgets + Gui + ICU - 57 метров. Вебкит с потрохами - еще 30 метров. Со времен 5.0.2, я думаю, размер только вырос.
>>465651 >Красивая и наглядная иерархия файлов - это наутилус? Это в 3.10 или 3.12 вроде добавили. В настройках надо галку поставить "показывать в виде дерева".
>>465658 Да не слушай ты долбоебов. Статическая линковка возможна, если ты лицензируешь свое поделие под GPL. Продавать тебе его никто при этом не запрещает.
>>465866 >>465919 Он мне не то чтобы не нравится, просто после питоновского f.read().strip().replace(' ', ' ').split(' ') делать то же самое практически вручную на плюсах кажется извращенством. Написать то это, конечно, не проблема, но наверняка уже есть готовые решения.
Ох, блядь, анончики. Что-то какая-то лютая прокрастинация навалилась на меня. По вузику с трудом какую-нибудь залупу делаю исключительно под самый-самый дедлайн. Код не пишу, вообще охуел.
Ещё одногруппники списывали задачки. Одна из задачек не работала, а препод её принял. Потупил в этот Ruby-код, который написал недели две назад. Нихуя не понял, блядь. Переписал на C++ и все заработало, да.
Препод дал задание написать простенькую игрулю на Qt&Ruby. Нахуй Ruby - хочу на С++ и что-нибудь годно и интересное, но боюсь обосраться.
Ноутбук уже напоминает, что стал старый. Намекает, что нужно искать работу. А осознание того, что к лету на работу вряд ли получится устроиться в качестве программиста, делает меня ещё грустить.
До сих пор не нашел внятной и подробной реализации Chaining Methods. Такое ощущение, что везде какие-то абстрактные примеры, хмык.
>>465998 Ну у нас ребята крайне неопытные в программировании учатся на потоке, поэтому он решил пояснять за основы на Ruby, за что я ему благодарен, ибо действительно оценил этот язык.
Потом он решил нам пояснить за GUI. Почему от tk он отказался, я так и не понял. Взял Qt и Ruby, а я вообще удивлен, как это говно вообще работает. Впрочем, он вроде бы C++ погроммист, поэтому игрулю буду ему на C++ писать. К тому же у меня не вышло подружить Qt и Ruby.
>>466005 Ну там есть ruby-qt4 библиотека. Подключаешь и работаешь. Конечно, я проигрывал, когда сигнал и слот передавался просто, как название метода в кавычках, но все равно прикольно было.
>>466011 А у меня не встала. Ошибок целый вагон. Одну пофикшу @ 10 выпадает. А этим говном мало кто пользуется, как я понимаю, и решения висят на всяких мелкофорумах с обсуждением на 50 страниц, блядь.
>>465730 Не понимаю чё за хуйня, когда пользуюсь fork программа не завершается на контрл+с. Я как-то не правильно завершаю детей? Дико бесит, я не могу так отлаживать.
>>466127 По-моему ты тупой хуесос, не умеющий смотреть дальше своего носа. Большинство проблем с добавлением современных фич :из-за подержания совместимости.
>>466149 Более мене ВСЁ появилось в стандарте С++11. Например, в классе std::string нет реализации функции Format() со списком параметров типа sprintf(). Эту костылину нужно писать самому или делать вид что тебе это и не нужно вовсе.
>>466213 Не мы в комитете сидим. Там дяденьки в возрасте, со своими тараканами, и не всегда они могут угнаться за каждым новомодным говнецом (да и не за всеми полезными штуками, увы). Хотя бы совместимость поддерживают и вводят при этом новые и новые фичи, уже очень хорошо. Но чуть больше гибкости им бы не помешало, согласен.
>>462718 подскажите пожалуйста решение, дан массив структур, содержащий имя и фамилию студента, курс, группу и место проживания(дом, общежитие, съёмное жильё). Как получить списки студентов в алфавитном порядке по курсам, проживающих в общежитии?
Вечер в хату, поцаны. Поясню за программирование кластеров, видеокарт, вычислительных ускорителей, немного за архитектуру, работу с памятью, линейную алгебру. Qt-мрази из треда руку не подавайте.
>>466265 Я тебе сказал, что по сути у тебя процедурная портянка буквоговна. Попробуй хотя бы переделать это в более функциональный вид, без говнопеременных, говнобуфферов и говноциклов.
>>466267 Не вижу ничего по сути. Ты сейчас бросаешься терминами, а я бы хотел услышать конкретный ответ. Например, мог бы рассказать, что именно там сделано не по ООП и как сделать в нем.
>>466269 Ок, сделай нормальный интефейс с функцией [code lang="cpp"]LCM getPrimesOf(const uint64_t number);[/code] , и уже к нему реализацию, вместо говна размазанного по 10 файлам.
>>466272 Спасибо! Вот это уже полезно, и я тебя почти понял. Но как ты предлагаешь это делать многопоточно без буфера? А что с файлами не так? Ты думаешь, делать обертки для потоков это плохая идея?
>>466273 — раздался пронзительный голос со стороны параши. Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять? Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
Аноны, что значит "метод для отображения стоимости товара в виде строки"? И правильно ли я вообще сделал эту хуйню? Создать класс Goods (товар). В классе должны быть представлены поля: наименование товара, дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на склад. Реализовать методы изменения цены товара, изменения количества товара (увеличения и уменьшения), вычисления стоимости товара. Должен быть метод для отображения стоимости товара в виде строки. http://pastebin.com/7QetZ8Kh
>>466302 Паттерны придуманы для того, чтобы кодомакаку можно было за вменяемые сроки научить писать код, понятный остальным кодомакакам в команде. Более-менее смышленый человек интуитивно использует нужные паттерны, даже не зная о том, что это паттерны. В любом случае, начинающему их учить смысла нет, один вред будет. Когда уже кое-что можешь и понимаешь, тогда полезно посмотреть, как другие решают типовые (и не очень) задачи, а до этого - не стоит. Яркий пример, почему не стоит - долбоебы, знающие jQuery, но не знающие JavaScript.
>>466323 >Аноны, что значит "метод для отображения стоимости товара в виде строки"? Это значит старый долбоеб вместо препода. Поссы ему в рот и проблема решится сама собой.
>>466456 объясни пожалуйста решение с векторами [code lang="cpp"]std::vector<Student> students = { ... }; std::vector<Student> inObschezhitie(students.size()); std::copy_if (students.begin(), students.end(), students.begin(), [](Student s){return s.mestoZhitelstva == "obschezhitie";});[/code] воот что эти строки обозначают, я не понимаю
Пока лень переписывать ту считалку линейных уравнений. Подумываю заебашить свой клиент для vk.
Хочу опуститься чуть ниже, чем готовая обертка для запросов, но вопрос "насколько низко?".
Запросы к серверу отправляются по https. Вот пример запроса: https://oauth.vk.com/authorize? client_id=APP_ID& scope=PERMISSIONS& redirect_uri=REDIRECT_URI& display=DISPLAY& v=API_VERSION& response_type=token
Возвращает JSON объект. Насколько низко можно опуститься, чтобы получить как можно больше знаний, которые можно ебашить на работе, и не сильно выебать себя в жопу?
>>466173 Константа - это пометочка для компилятора, чтобы он не разрешал изменять значение данной переменной с момента её инициализации. Значение может быть не известно на этапе компиляции.
Константное выражение - константа, значение которой известно на этапе компиляции. Нужна для удобства (избегаешь ошибок с "магическими" числами, для её изменения достаточно исправить определение, а не во всех местах, где она).
>>466454 Ты охуел, что ли? Что может быть проще, чем вектора?
>>466477 Первой строкой он создал вектор типа <Student> (вероятно, Struct из стринга, говна и мочи) через равно и инициализацию фигурными скобками. Равно я бы убрал, чтобы получить строгую C++11 инициализацию, это добавляет понимания, что происходит.
Второй строкой он создал вектор типа <Student> размера того же, что и первый вектор.
Третьей строкой он запилил функцию, которая видимо обёрнута классом, в которой есть первый вектор, и видимо второй тоже, т.к. это виидмо опечатка: >students.begin(), students.end(), students.begin()
>>467038 > Третьей строкой он запилил функцию, которая видимо обёрнута классом, в которой есть первый вектор, и видимо второй тоже, т.к. это виидмо опечатка: Да и вообще там надо что-то типа std::back_inserter
Допоможи божественный анон с написанием сборщика мусора. Си без крестиков (С99) - есть массив указателей вида void asd = NULL; Покажи по хардкору, как в него безопасно покласть указатели на выделенную память, а затем ещё безопаснее освободить.
>>467117 А нахер тебе вообще сборщик мусора? Какой дегенерат его вообще придумал? Вот представь, тебе пришла идея в голову: А ДАВАЙ Я НЕ БУДУ ВЫТИРАТЬ ЖОПУ И ВООБЩЕ БУДУ СРАТЬ ПРЯМО В ШТАНЫ, ЧТОБЫ ГОВНО ВАЛИЛОСЬ ПО ЛЯЖКАМ И ВЫПАДАЛО ИЗ ШТАНИН! А ПОТОМ, КОГДА ШТАНЫ НАЧНУТ РВАТЬСЯ ОТ ГОВНА, РАСПИРАЮЩЕГО ИХ, Я ПОЗОВУ СПЕЦИАЛЬНОГО ЧЕЛОВЕКА, КОТОРЫЙ ВСЁ ЭТО ГОВНО ВЫЧИСТИТ! И ДАЛЬШЕ БУДУ СРАТЬ В ШТАНЫ! ГЛАВНОЕ - ЧТОБЫ НЕ ХОДИТЬ ДО СОРТИРА И НЕ ВЫТИРАТЬ ЖОПУ, ЭТО ЖЕ ТАК ДОЛГО И НЕУДОБНО! Гениально звучит, не так ли?
>>467130 Так RAII это же полная противоположность. СРЁШЬ ТОЛЬКО НА УНИТАЗЕ, БОЛЬШЕ НИГДЕ! КОГДА ПОСРАЛ - ТУТ ЖЕ ВЫТЕР ЖОПУ НАЧИСТО И ПОШЁЛ ДАЛЬШЕ, КАК БЕЛЫЙ ЧЕЛОВЕК.
>>467133 Статистический анализатор, хочу чтобы использовал векторы, по нескольку штук, с заранее неизвестными размерами, для этого нужна простая СУБД, а сборщик мусора нужен чтобы за ней подтирать автоматом.
>>466540 ну вот у меня сейчас почти на всем стоят подобные скрипты >>466585 Раньше юзал свой пре-билд скрипт, что выносил определения\специализации шаблонов в отдельные файлы и включал их в проект, сейчас им не пользуюсь; всякие статистики-хуистики, включенные сейчас во все ide и т.д. Вот и спросил
>>467133 >>467147 А суть скорее даже не в этом, а в том, что я кроме си мало что серьёзно изучал, тем более с ООП. И это не повод учить другие ЯП, спасибо, хватит с меня.
>>467201 >>467202 А причем тут семинар КРОКа, который я поседил. Олсо, они там почти все пишут на Java, меньше на C#. И практически нихуя на C++. Вот собственно от этого у меня и полыхнуло, однако офис там просто 10/10.
А я вам между тем покушать принес. Не совсем про кресты, но про Qt, а точнее QML. http://akreuzkamp.de/2013/07/10/webapps-written-in-qml-not-far-from-reality-anymore/ Суть - пишем в брошзере на QML, ~300 КБ жабаскрипта и вперед, никаких плагинов не требуется. HTML и CSS отправляются туда, где им и место - на помойку... сказал бы я, но, увы, проект еще довольно сырой и далеко не все фичи QML поддерживает.
>>467206 Посему я сегодня озадачен вопросом, а найду ли я РАБОТУ C++ пограммистом, ведь на нем хуй да нихуя пишут.
Олсо нудили про то, что нет специалистов, демографический кризис, пришлось идти в регионы. В конце семинара кун задавал вопрос, а хули ему уже второй раз даже в собеседовании отказывают?
Олсо, поясните за объекты. Вот ты пишешь в {Class object;}, что создаешь какой-то объект. Программа выходит из скоупа и разрушает объект автоматически. А теперь когда тоже самое делаешь через new. Ведь в таком случае память надо подчищать самому - писать деструктор, вызывать его и т.д. А когда собственно использовать это ручное выделение\высвобождение памяти?
>>467212 >А когда собственно использовать это ручное выделение\высвобождение памяти? Когда объект должен жить после выхода из скоупа/когда объект слишком большой, чтобы размещать его на стеке. Для управления памяти есть умные указатели.
>>467212 > найду ли я РАБОТУ C++ пограммистом Постараешься – найдёшь.
> нет специалистов, демографический кризис Каких они там спецов то ищут, лол? Которые стандарт цитируют, как библию?
> А когда собственно использовать это ручное выделение\высвобождение памяти? Нихуя не понял вопроса. Сейчас память ручками стараются не выделять, вроде бы. Но внутри различных инструментов автоматического управления памятью один хуй это используется.
Ребята, малолетний сишник в треде! Есть неплохое знание си из учебников и универа, нет практического опыта, на вакансии тоже без слёз не взглянешь. Что делать? Осваивать ещё один язык или на си тоже можно куда-то попасть? В каких областях вообще пригодится чистый сишник?
>>467236 Знанием одного языка тут особо не прокормишься. А вообще чистому сишнику прямая дорога в системное программирование или в микроконтроллеры всякие.
>>467241 > куда-то устроиться и научиться всему на месте Такое бывает, но редко, чаще у студентов. Попробуй найти стажировку. База нужна в любом случае.
>>467243 А вот тут хуй пойми, сам в последнее время планирую съябывать из "науки" в продакшн. Стандартный список сайтов с вакансиями: Яндекс, job.ru, career.ru
Короче, как я не пытался - адекватного генератора карт для игры "сапёр" я на плюсах не смог написать. Внезапно лоллирую. Вот вам моя лапша http://pastebin.com/XxZXZQrM которая вообще хуй знает каким боком умудряется увидеть "мину" там где её нету и поставить подсказку-цифру на той клетке где её быть не должно. Лол короче.
>>467268 А ты еще больше ifов добавь, вдруг поможет? на самом деле добавь по пустой строке/столбцу с каждой стороны и считай как белый человек, с единицы, проверяя у каждой клетки 8 соседей. И еще: не пользуйся endlом, он каждый раз принудительно очищает буфер. Скорее всего, тебе нужен простой '/n'.
>>467111 Я-то знаю, что такое copy_if, но он вместо использования вектора для отфильтрованных элементов использует исходный вектор. При этом за каким-то хуем под отфильтрованные элементы выделяется памяти как под исходные.
>>467374 >Я-то знаю, что такое copy_if, но он вместо использования вектора для отфильтрованных элементов использует исходный вектор Вот так надо, наверно std::copy_if (students.begin(), students.end(), inObschezhitie.begin(), [](Student s){return s.mestoZhitelstva == "obschezhitie";});
>При этом за каким-то хуем под отфильтрованные элементы выделяется памяти как под исходные. А как ты узнаешь, сколько надо выделять?
>>467140 > Так RAII это же полная противоположность. Зачем? Каждый new это поиск в куче, а выделение памяти в управляемой куче идёт также быстро, как и на стеке. Это охуенное преимущество: можно тратить время на управление памятью, когда это удобно, а в моменты загрузки системы на это время не тратить. Плюс нет фрагментации, можно динамически загружать-выгружать объекты и переносить между серверами. Я бы с огромным удовольствием писал на шарпе, вытаскивая в неуправляемую область только высокопроизводительный код, что на системах с общей памятью я и делаю
>>467377 > Вот так надо, наверно Ну я бы ещё константные итераторы брал, а не простые, потом количество студентов бы посчитал, хотя это ладно. > А как ты узнаешь, сколько надо выделять? А это std::vector автоматически делает, для этого push_back там и придумали. А чтобы с std::copy_if использовать придумали std::back_inserter...
>>467478 > двоичное представление положительных чисел для знаковых и беззнаковых типов совпадает Не совпадает. Не в стандарте дело даже, а в бите для представления знака числа.
>>467506 Ну выбирай задачу, ты пишешь на си, я пишу на плюсах, и посмотрим, кто у кого сосёт. Я только гандон надену, а то запархатится от сишкамрази можно
>>467514 Стандарт не регламентирует расположение бита знака и вообще реализацию арифметики вычислителем. Может быть у меня математик-маразматик в качестве вычислителя, который значения записывает на тетрадном листочке, и у него sizeof(char) это четыре клеточки. И он в первой клеточке у signed char ставит плюсик, а у unsigned char никогда плюсика не ставит.
На самом деле биты всё-таки должны быть. Ну, мой математик не заморачивается прямым и обратным кодом, а просто складывает и вычитает в столбик, записывая знак в первом бите. Он всё ещё соответствует модели памяти и стандартов типов из стандарта. Если это не так, то покажите, какому пункту он не соответствует.
>>467522>>467526 Ясно. Спасибо. Блядь, одни проблемы, никак кроссплатформенный код не напишешь. Придётся создавать дополнительный массив того же размера.
>>467547 Ну вообще это не самое безосновательное предположение, плюс ты можешь в иницализации накатать тест с reinterpret_cast и если это предположение не выполняется просить обратиться в поддержку. С вероятностью 99.999% тест будет положительным всегда
>>467553 > Как влияет на быстродействие? Никак. Эта штука действует только на компиляторе. Собственно, с помощью неё ты бы потом и будешь интерпретировать знаковые, как беззнаковые.
>>467836 Если асм сюда прикинуть, то получится вроде таких наборов инструкций 1.1:cmp,jmp,mov,mul,add 1.2:cmp,mov 2:mov,mul,add Что я пытался изобразить, это что для 1 случая при вычислении пары умножений выполняется больше инструкций, но если вычислять не надо - меньше, а для второго, что он при вычислении пары умножений будет быстрее, но не будет экономить время на бессмысленных подсчётах. Так что, если ты калькулировать будешь много, а отсеивать мало, то второй вариант должен выполняться быстрее первого.
>>467843 Хорошо тебе, в простом мире живёшь. И поток только один у тебя бывает. И телепатами с детства окружён. И вообще, как бог - всё правильно думаешь, без тени сомнения.
>>467677 >>467670 На самом деле влияет. Ибо на то, чтобы перенести данные из целочисленного регистра в регистры FPU, тратится процессорное время. Небольшое, но тратится. А это преобразование вполне может задействовать этот перенос.
>>467830 Надо замерять. Второе на классическом хуй86 из-за OoOE и конвейера может быть и быстрее на кропаль, а может и нет. >>467849 Может конвейер заступориться из-за перехода, я бы ставил на второй вариант даже с отсеиванием. >>467891 Путаешь static_cast и reinterpret_cast. Второй компилируется ни во что абсолютно, и время никуда не тратится (кроме компиляции).
>>468313 Нет. В общем случае, reinterpret_cast, но надо понимать что делаешь. static_cast позволит только указатели на простые типы, dynamic_cast вообще не даст.
Господа, вопрос: нужно читать поток чисел, класть в очередь и раздавать потокам на обработку. Каким образом это так сделать, чтобы с одной стороны очередь не ждала, пока все потоки отработают, с другой, потоки не ждали, пока в очереди что-то появится.
>>467478 До числа 2147483647 представление будет идентичным. Потом int пойдет в минус, станет -2147483648. А unsigned int пойдет дальше по положительным числам.
Двачик, периодически я встречаю в коде куски, заключенные в фигурные скобки, но без операторов циклов или условий. Что это означает и как это работает? Просто отделение куска кода для удобства восприятия или что?
>>468414 > Чёткой границы нет, 8х8 или 16х16 – небольшие. Чтобы в стек влезало. Чем подкреплено это ебаное утверждение? Чем обоссанные статические массивы лучше для хранения матриц? Почему матрица 17x16 "не влезает" в стек? И зачем её туда запихивать?
>>468489 Кто сказал, что sizeof(int) == 4? Кто сказал, что именно таким образом реализован бит знака? Если в твоей путяге рассказали про прямой и обратный код, это ещё не значит, что других способов представления нет. Эксперты, блядь.
>>468542 > есть какие-то подводные камни, которых я не вижу? Навскидку: не раздавай числа по одному. Замерь время и сравни с теоретической производительностью, возможно. придётся брать другой вариант. Если количество чисел заранее известно, можно отказаться от синхронизации и выделить область памяти для каждого потока, например. Нужно больше знать про задачу.
>>468544 Задача проста, но злоебуча. Из стандартного ввода поступают числа (например, пусть будет uint16_t). Они кладутся в очередь. При добавлении числа просыпается один из рабочих потоков (число которых жестко задано) и начинает делать с ним какую-то магию, не суть важно, но она может быть довольно длительной. Соответственно, завершив дело он засыпает. Когда числа перестают поступать потоки разбирают, что осталось, и выходят.
В принципе, если подумать, очередь вполне может ждать, пока один из потоков доработает, потому что иначе она может раздуться до диких размеров при большом количестве чисел (а значит, ее по-любому придется ограничивать).
>>468548 Алсо, возникает такой концептуальный вопрос: как на голом С++, без Qt и его сигнальной системы, составить грамотный алгоритм, который будет заполнять очередь, если она не полна, и выдавать задания любому потоку, как только он освободится, если есть свободные задания.
Я пока нашел такую схему:
while ( !pushNumber ) { while ( !popNumber ) {} }
где обе функции возвращают true, если удалось выполнить их назначение, иначе false. Но не могу оценить с ходу, насколько оно адекватно.
>>468549 >>468551 >>468552 Ну давай буду мысли подкидывать. Треды явно надо собрать в пул, а входящие события обрабатывать асинхронно. Какой фреймворк это умеет, кроме буста?
>>468561 Мне лень читать прямо сейчас, чтобы разобраться, как оно работает в плюсах и тем более лень разъяснять тебе фундаментальные основы хрени. Попробуй погуглить, это действительно интересно, весьма не сложно, понравится твоему преподу.
>>468538 Все что в скобках - скоуп. Во-первых, переменные, объявленные внутри скоупа, перестают быть видны вне его, то есть за скобками. Во-вторых, переменные, объявленные в скоупе на стеке, удаляются при выходе из него. >>468557 Ясно. Не хотим использовать готовое, хотим велосипед, который будет в точности повторять то, что уже умные люди написали давно. Буст хоть возьми, долбоебушка. >>468559 А тебе бы на хуй пройти надо, клован.
>>468843 В инте 32 бита. Старший из них делит диапазон значений инта пополам, так как занят под знак. Только по тому, что этот бит занят, использовать диапазон значений больший, чем позволяют 31 бит невозможно. 2 ^ 31 = 2147483648 По стандарту си похую сколько бит в инте так же как похую ему сколько бит в байте, он гарантирует правильность обращения с битами, а не их количество, которое задаётся архитектурой.
>>468862 >В инте 32 бита. Объебос, в инте столько бит, сколько необходимо для хранения чисел от -32767 до 32767. То есть минимум 16, а все остальное - платформозависемо. Гугли всякие ILP32.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.
Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode
Предыдущий: