Двач.hk не отвечает.
Вы видите копию треда, сохраненную 25 мая 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
463 Кб, 785x678
C++ тред sage #462718 В конец треда | Веб
Вопросу по синтаксису идут на хуй.
Лабы идут на хуй.
"Как мне сделать Х на чистых крестах без библиотек" идут на хуй.
Все идут на хуй.

Тег [code] работает через жабаскрипт-костыль: https://github.com/ololoepepe/MakabaCode

Предыдущий: >>456723
#2 #462749
>>462642
в цикле insret(new_vec.end(), vec.begin()+pairs.a, vec.begin()+pairs.b) же
#3 #462751
>>462749
индексы [ i ] сожрались
#4 #462976
>>462749
Вообщем, мне boost::join нужен был, уже сделал.
#5 #462978
Ууу, пидоры, целый день убил, чтоб на вашем языке написать сортировку рюзких слов в кококонсоли без учёта регистра. Такое чувство, будто в каменный век попал.
sage #6 #462980
>>462978
sort . map toLower
#7 #462991
>>462980
Хуй там плавал.
Без

\tsetlocale(LC_ALL, "Russian");
\tSetConsoleCP(1251);
\tSetConsoleOutputCP(1251);

не сортирует русские слова (2015, сука, год на дворе). Вместо cin почему-то нужно писать

getline(cin, ...);

кастомный компаратор переписывал раз 10, в итоге откопал где-то:

\t\treturn lexicographical_compare(s1.begin(), s1.end(),
\t\t\ts2.begin(), s2.end(),
\t\t\ticompare_char());

Ну что за говно. Половина функций с &, половина без, хуй проссышь, никакой систематики.
sage #8 #462996
>>462991
welcome to krestogovno
defining drisnya-code since 83'
#9 #462997

> SetConsoleCP(1251);


> SetConsoleOutputCP(1251);


Виндапроблемы.

> setlocale(LC_ALL, "Russian");


setlocale(LC_ALL, "");
sage #10 #463000
>>462978
Просто ты тупой спермоклоун.
[code lang="cpp"]
QTextStream in(stdin, QIODevice::ReadOnly);
in.setCodec("<имя_кодека_в_твоей_спермоконсоли>");
QStringList words = in.readAll().split(" ");
qSort(words);
[/code]
sage #11 #463002
>>463000
Ну или без учета регистра
[code lang="cpp"]
qSort(words.begin(), words.end(), [](const QString &s1, const QString &s2 {
return s1.compare(s2, Qt::CaseInsensitive) < 0;
}));
[/code]
sage #12 #463003
Фикс, ебучие скобки.
[code lang="cpp"]
qSort(words.begin(), words.end(), [](const QString &s1, const QString &s2) {
return s1.compare(s2, Qt::CaseInsensitive) < 0;
});
[/code]
#13 #463007
>>462978
>>463002
да тащемто и без Qt можно компаратор в сорт запихнуть.
а русский язык, да, имеет смысл только в gui а в большинстве библиотек для гуи (например Qt) он поддерживается.
#14 #463010
>>463007

>он поддерживается


Это не в большинстве библиотек он поддерживается, это просто виндоконсоль калечное создание.
#15 #463015
>>463010
будем считать что так.

напишите лучше пару типикал задач, которые можно распараллелить, хочу std thread немного освоить
sage #16 #463023
>>463015
как же эти нубы доебали с отношением уровня

> будем считать что так


ПОЙДИ ПОДМОЙСЯ
#17 #463025
>>463023
линуксоёба порвало?
#18 #463026
[code lang="cpp"]const char* alphab[2] ={{"ABCDEFGHIJKLMNOPQRSTUVWXYZ"},{"abcdefghijklmnopqrstuvwxyz"}};[/code]
Это же массив из указателей на константу типа char, правильно? Почему тогда инициализация сработала? Это ведь два объекта типа string, а не указатели.
#19 #463027
>>463026
Ой :(
#20 #463028
>>463026

>Это ведь два объекта типа string


с чего бы? это 2 указателя
sage #21 #463030
>>463025

> ?


неуверен не пизди
#22 #463032
>>463028
А где там написано, что это указатели? Звездочек то нет.
#23 #463033
>>463028
Сложный вопрос. одно и тоже:
char a = "12345" ;
char
b = &"12345" ;

А ещё можно:

for (i = 0 ; i != 5 ; ) { printf("%c\n","12345"[i++] ) ; }
#24 #463035
>>463033

> char звёздочка a = "12345" ;


> char звёздочка b = &"12345" ;

#25 #463043
>>463035
строчка с b не компилируется,
возможно ты хотел написать &"12345"[ 0 ]?
#26 #463047
>>463035
[code], даун
#27 #463051
>>463043
На ц вроде пашет, в гцц с предупреждением, но так:
char b = ( char ) &"12345" - ваще норм.

>>463047
Сам запускай свои клоунские скрипты.
sage #28 #463056
>>463051

> я такой типа нихуя не умею


> но блядь такой типа


> Сам запускай свои клоунские скрипты.


обосрался с дауниты
#29 #463057
>>463051

>Сам запускай свои клоунские скрипты


>А я буду унижаться и жрать разъебанное разметкой говно вместо кода

#30 #463058
>>463056
Сорь)
#31 #463060
>>463057
Блин, как я не подумал о читателях.. Всё иду качать, гойсманки да и там что-то клацнуть надо? Я прост не умею).
#32 #463067
>>463060
Просто блядь оборачивай свой код в тэг [code lang="cpp"][/code]
Больше от тебя ничего не надо, тупица.
#33 #463068
>>463067

>Просто блядь оборачивай свой код в тэг


>[code lang="cpp"] [/c0de]


Fix.
Или вообще уебывай.
sage #34 #463076
Делаешь для них ебучие костыли над дрисней макаки, а они не хотят, хотят жрать говно.
>>463026
Потому что синтаксический сахар. Точно так же, как ты можешь передать массив в функцию, принимающую указатель.
[code lang="cpp"]
char a[] = "shitting on your face";
int f(char ) { /banging your mum here*/ }
f(a);
[/code]
#35 #463080
В каких моментах С быстрее С++? И правда ли, что пустая main () на С сгенерируется с меньшим кодом чем на С++?
#36 #463082
>>463080
Приполз из собеседований-тредж, да?
sage #37 #463083
>>463076
То есть по сути происходит взятие адреса первого элемента:
[code lang="cpp"]
const char *c = &"fgsfds"[0];
[/code]
(Обрати внимание на const, без него логично что не дает сконпелировать.)
sage #38 #463088
>>463080
В моментах когда мой член погружается в разъебанный пердак твоей матери-шлюхи, байтомразь.
#39 #463089
>>463082
Да у нас тут комиссар жюва, прищучил самого фантомаса.
#40 #463090
>>463089
Уебывай обратно. Сейчас говном закидаем.
#41 #463092
>>463090
Я не фантомас зачем вы меня ломаете, зачему достаёте бутылку?
485 Кб, 566x800
sage #42 #463093
>>463090
Эт точно.
#43 #463094
>>463092
Чтобы тебе в жопу засунуть, блядь.
#44 #463096
>>463094
нееет, тльк не в жопу, это единственное моё слабое место.
#45 #463097
>>463096
Значит будет другие дырки разрабатывать, коль слабое.
#46 #463118
>>463088
Qt-петух опять подгорел.
32 Кб, 600x399
53 Кб, 199x200
26 Кб, 343x256
47 Кб, 600x400
#47 #463154
ААААААААААА БЛЯДЬ ДА ЧТОЖ ТАКОЕ СУКА ПОЧЕМУ В ВАШИХ БАЙТАХ НИХУЯ НЕ ТАК КАК В ДЖАВЕ БЛЯДЬ
ПОЧЕМУ НЕЛЬЗЯ ПОДРУЖИТЬ TEMPLATE КЛАСС С ДРУГИМИ КЛАССАМИ
ПОЧЕМУ ДРУЖБА НЕ НАСЛЕДУЕТСЯ
ПОЧЕМУ НЕЛЬЗЯ СОЗДАТЬ МАССИВ ИЗ TEMPLATE КЛАССОВ БЕЗ ЕБАНИЯ БАЙТОВ
ПОЧЕМУ В ДЖАВЕ ТАКИЕ ПИЗДАТЫЕ ГЕНЕРИКИ А В СИПЛЮСПЛЮС УЁБСКИЕ ТЕМПЛАТЫ КОТОРЫХ Я РОТ ЕБАЛ БЛЯДЬ ПОЧЕМУ НЕЛЬЗЯ СДЕЛАТЬ КАК ГЕНЕРИКИ НУ НАХУЯ ТАКИЕ УБОГИЕ ТЕМПЛАТЫ Я ЕБАЛ БЛЯДЬ КАК У МЕНЯ ГОРИТ ВСЕ ПРОБЛЕМЫ ИЗ-ЗА ЭТИХ ТЕМПЛАТОВ СУКА


Вопрос: Как сделать доступными private поля из какого-нибудь класса для какого-нибудь template-класса? Если делаю friend class ITemplateClass, то есть для интерфейса этого template-класса, из которого он расширяется, то нихуя не работает. Потому что friend на наследуемые классы не работает. Как решить проблему?
sage #48 #463162
>>463154

>Как сделать доступными private поля


Объяви их public
#49 #463164
>>463162
Но я хочу расшарить их только для одного класса.
#50 #463175
>>462991

> \tsetlocale(LC_ALL, "Russian");


> \tSetConsoleCP(1251);


> \tSetConsoleOutputCP(1251);


Кек, венда до сих пор не может в utf8?
sage #52 #463182
>>463154
Объявить наследуемые классы как friend.
#53 #463205
>>463076

>Точно так же, как ты можешь передать массив в функцию, принимающую указатель.


Массив - это указатель на первый его элемент.
#54 #463207
Как сгенерировать рандомное число от 0 до 1? То есть либо 0, либо 1.
[code lang="cpp"]
rand()%1 //не генерирует 1
rand()%2 //не генерирует 0
[/code]
#55 #463209
>>463207

> rand()%2 //не генерирует 0


А не пиздишь?
https://ideone.com/aRW5jH
#56 #463211
>>463209
Бля, я тогда не знаю почему вот это работает через раз: https://ideone.com/QlZPdH
#57 #463212
>>463211
А, понял.
rand()%3+2 //возвращает числа от 2 до 4.
rand()%2+2 //от 2 до 3.
sage #58 #463215
>>463205
Нет. Кури документацию.
#59 #463346
Вот знаете что. Наш завсегдатай Кьютэгосподин хуйню не несет. Сегодня нам в вузике поясняли за Qt, и мне чертовски это понравилось. Сам я с ним был знаком очень слабо - правил некоторые программки, запускал примеры, однако за 2 пары на пояснили основные концепции.

Охуенный фреймворк, очень нравится. Совсем по-другому на него посмотрел. Впрочем, это вовсе не значит, что я брошусь писать код на нем. Все, конечно, охуенно, но я нахожусь на стадии обучения и, как следствие, нуждаюсь в разборе задач и самолично реализовывать их. Однако откладывать в долгий ящик не буду - буду допиливать своим йоба приложениям всякие GUI и прочие ништяки.
#60 #463365
>>463182
Но это же костыль. Я хочу чтобы написал один раз - и всё работает для потомков нужного класса.

Алсо, проблему решил. Через указатели. Обращаюсь по ним к приватным членам нужных мне классов.
21 Кб, 200x200
sage #61 #463378
>>463346
Красаучег, жи есть!
#62 #463430
>>463365

Боже. ))
#63 #463441
>>463176
Но там же какой-то utf16, да ещё что-то куда-то вручную конвертировать надо.
#64 #463444
>>463207

>cpp


>rand()


<random> для кого писали, сучечка?
#65 #463446
Что-то я читаю про функторы и их отличие от указателей на функции и ни черта не понимаю. Что за сверхъестественная сила мешает инлайнить функции?

Я предположил, что код наподобие
[code]{
int () *lol;
lol=main();[/code]
скрывает тело функции, и её уже фиг заинлайнишь. Но объясните мне, неужели нельзя инлайнить то, что названо индентификатором? Нафига мне объявлять структуру только для того, чтобы передаваемые функции инлайнились?
#66 #463447
>>463346
Побегу, сломя голову, писать на qt, когда он начнёт использовать неймспейсы и избавиться от moc. А пока неприятно.
#67 #463448
>>463441

>Но там же какой-то utf16



чо
#68 #463450
>>463446
причём тут инлайны вообще?
#69 #463454
>>463448

> MultiByteToWideChar function



> Maps a character string to a UTF-16 (wide character) string.

#70 #463456
Я только сейчас понял, что qt звучит как cute или cutie, годное название. Я хочу разработать свою бд и назвать её qpdb - лого будет джва хуя - один висячий, другой стоячий. Идеальное название для бд.
sage #71 #463463
>>463447
Любишь пердолиться с too::many::namespaces::and::even::move, да? Или с шаблонодрисней на 9000 строк вместо нормальной метакомпиляторной рефлексии? Говноедство же.
sage #72 #463464
>>463463

>even::more


фикс
#73 #463469
>>463463
Нет на оба вопроса. Вариант сделать нормально не рассматривается или у тебя ДЕМАГОГИЯ?
#74 #463472
>>463454

Какая тебе разница от того, что там внутри? У тебя есть wchat_t на выходе и для него есть методы.

>>463450

Потому что я хочу инлайны вместо колов. Или ты не в курсе того, что инлайны интересным образом связаны с функторами?
sage #75 #463475
>>463469
Вот когда сделаешь, тогда и приходи. Посмотрю я, как ты реализуешь рефлексию на крестах без метакомпилятора. Единственная существующая альтернатива кьюту в виде буста использует как раз отвратительные километровые шаблоны и почти такие же длинные нэймспэйсы. А в плане гуёв альтернативы вообще нет. Поделки типа wxWidgets даже рассматривать не вижу смысла.
#76 #463478
>>463015
Умножение матриц, Свёртка, Гистограмма, БПФ
#77 #463479
>>463441
Да, но в конечном итоге ты получаешь строку wchar_t. Перекодировываешь в него из UTF-8 и готово.
#78 #463480
>>463154
Пиздец, высрал хуёвую архитектуру и теперь обвиняет язык, ну не долбоёб?
#79 #463481
>>463430
))
Какие альтернативы?
#80 #463482
>>463447
В Qt нет нэймспэйсов? Ебал я в рот.
#81 #463484
>>463482
Есть, но используют их тогда, когда это действительно нужно:
http://doc.qt.io/qt-5/qt.html
#82 #463485
>>463479
Не могу уловить сути, у вас в винде stdin и stdout работает на utf8 или utf16? Или о чём вы, упиваетесь тем что есть функция перекодировки?
#83 #463488
Кьютигосподин что-то давненько ничего на github не выкладывал. Я переживаю.
sage #84 #463489
>>463488
А что я туда должен выкладывать? Фотку своего маленького хуйца?
#85 #463490
>>463489
Ну как вариант. А вообще чего нихуя не пишешь?
sage #86 #463491
>>463482
Ты количество классов видел? Нахуя там нэймспэйсы? Тем более что названия всех классов начинаются с Q, а значит, они не пересекутся с классами из других библиотек. Если же таки пересекутся, то можно задать, чтобы все кьютовые классы помещались в нэймспэйс (вроде при конпеляции задается, а может и простым дефайном, точно не помню, т.к. не пробовал).
sage #87 #463493
>>463490
Настроения нет. Борду вот писал-писал, а там кроме полутора человек никого и нет. Ну и потом мне диплом писать нужно, а еще я на днях купил геймпад и познал все прелести игры лежа на диване, ну и как последний штрих к картине - завтра выходит жта5 для пеки. В общем не хочу пока что, не все же код дрочить.
#88 #463496
>>463491
В ранних версиях куты было овердохуя неймспейсов.
#89 #463497
>>463493
Да ладно, я так. Поинтересоваться. Сам ничего не успеваю. Пришел сегодня, хотел запилить мой LaTeX chaining механизм, но вместо этого заснул. Да и в универе завал.

твой-скромный-подпиздчик, который роется в твоих исходниках, аки грязном белье
sage #90 #463499
>>463496
Все меняется и развивается. То, что не развивается, рано или поздно умрет. Особо годные вещи, правда, могут прожить довольно долго, это да (тот же TeX).
>>463497

>LaTeX chaining механизм


Расскажешь поподробнее?
#91 #463500
>>463499

>Расскажешь поподробнее?


Да я уже писал. Мне надо было сгенерировать LaTeX документ из данных программы. Я дико торопился, поэтому пидор прямо из кода все.

myFile << "\\begin{bmatrix}\n"; .... myFile << "\\end{bmatrix}\n";

Генерировать надо было довольно большой файл, он был абсолютно не читаем, а также я дико заебался его дебажить, ибо все время проебывал какую-нибудь хуйню.

Поэтому я решил написать какой-нибудь класс, который упрощает эту работу. А именно я вспомнил про chaining pattern, который позволяет сделать мне ништяковую вещь.

myTex->begin("bmatrix")->add(myVector);
myTex->write();

Ну и собственно все. Уверен, что есть какая-нибудь готовая обертка, но мне надо осваивать паттерны и все дела.
sage #92 #463501
>>463500
Ага, понял. Это я просто в глаза долблюсь и прочитал как "LaTeX toolchain", подумал что какая-то новая йоба-технология, лол.
#93 #463503
>>463501
Та не, я ещё тупой. Но это пока что. Иду семимильными шагами, правда шагаю редко.
sage #95 #463521
>>463517
Да, замечал такое, посмотрю завтра.
#96 #463556
>>463475
Ебать ты дремучий. Typesafe, standard c++, без всякого макросоговна с отдельным препроцессором.
http://libsigc.sourceforge.net/
#97 #463557
>>463491

> Ты количество классов видел?


Видел. У неймспейсов появилось ограничение на количество классов или что?

> Нахуя там нэймспэйсы? Тем более что названия всех классов начинаются с Q, а значит, они не пересекутся с классами из других библиотек.


Ну вот и сидели бы в отдельном неймспейсе. И без уебанский Q в начале каждого можно было бы обойтись тогда.

> Если же таки пересекутся, то можно задать, чтобы все кьютовые классы помещались в нэймспэйс (вроде при конпеляции задается, а может и простым дефайном, точно не помню, т.к. не пробовал).


Хули ты сразу не сказал тогда? Лишь срач разводить.
#98 #463594
Братия в миру, могу я задать вопрос по вводу-выводу данных в консоль? Только не бейте, лучше обоссыте.
#99 #463595
>>463594
Задавай, хули. Обоссу так и быть.
#100 #463602
>>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;
Он мне выдает неебическую хуиту с огромными цифрами. Но при этом движение идет нормально, т.е. изменяются координаты последовательно и как нужно, в зависимости от хода. ВТФ?
#101 #463606
>>463602
X какого типа?
sage #102 #463608
>>463556
Почитай для начала, что такое рефлексия. Это не то же самое что сигналы и слоты.
#103 #463609
>>463606
int
я тоже думал на указатель, но нет - он бы тогда рандомные числа выдавал, так?
sage #104 #463610
>>463557
Ну и нахуй тебе это? Излишне и некрасиво.
#105 #463614
>>463609
Сокращай код до уровня небольшой програмки на ideone где повторяется баг, тогда может кто-то и поможет, а скорее всего ты сам разберешся. По тому коду что ты дал вроде все ок.
#106 #463615
>>463614
Хорошо, спасибо анон.
#107 #463620
Анон, не подскажешь, как проще всего реализовать операцию обработки множеств симметрическую разность?
sage #108 #463626
>>463620
первокурсник, иди нахуй
#109 #463629
>>463620
Прочитай определение сим. разности, осознай что у него есть переопределение через простейшие операции и иди нахуй.
sage #110 #463686
>>463521
>>463517
Сделал. Больше пока нихуя не делаю, жта5 вышла.
#111 #463730
>>463686
ебать ты быдло
sage #112 #463735
>>463730
Ты небось из тех, кто постил свои жопы с супом, но так и не смог выпросить, а теперь завидуешь. Угадал?
#113 #463744
>>463735
не) вообще толком не играл ни в одну игру серии
смотрел как братан и однокурсники шпилят в третью и сан-андреас, но че-то не впирало
sage #114 #463751
>>463744
Я в третью тоже не играл, был тогда школьником, все посоны играли, а я поставил и через 5 минут удалил - показалось, что унылое говно. Относительно недавно начал ходить к другу на большой плазме играть, и как-то начало нравиться. Купил себе телек, пад, предзаказал жта и доволен как слон. Заодно и в другие игры играть стал.
sage #115 #463842
>>463602

>эти отступы

#116 #463846
>>463602
Ты из принципа свой код с подсветкой синтаксиса не делаешь?
#117 #463904
>>463846
Я вообще первый раз за все время тут присутствия выложил свой код, если что. В следующий раз уже поставлю костыли, не волнуйся.
#118 #463906
>>463904
Да даже костыли не надо. Просто пиши [code lang="cpp"][/code]
И все заебок будет.
#119 #463912
>>463906
Вот как, большое спасибо, анон. Извините ньюфага.
Кстати говоря, программа заработала, похоже я просто где-то забыл явно проинициализировать координаты вначале.
#120 #463958
>>463912
Нахуй ты извиняешься? Расставлять теги, работающие только через гомоскрипты - вот пидорство. Не унижайся перед быдлом.
sage #121 #463968
>>463958
Абу, ты?
#122 #463981
>>463610
А по-моему никакой разницы с префиксом в плане излишности, зато профиты в виде семантики.
27 Кб, 181x160
#123 #464005
Доброе время суток, хотелось бы узнать ваше мнение о такой штуке как статический анализатор кода. Понимаю, что большинство тут - школьники, либо люди, работаюющие над небольшими проектами и он им нафиг не нужен, однако быть может здесь сидят и гуру с++
Я вам PVS-STUDIO принес, братишки
sage #124 #464008
>>464005
Че хотел то? Ну, полезная вещь, дальше что?
#125 #464010
>>464005
Cppcheck на постоянный мониторинг файлов. Укажет на многие ошибки по невнимательности.
уноси это платное поделие обратно на хабр
#126 #464023
>>464010
У этого платного поделия триальная версия вечная. Алсо в разы мощнее Cppcheck
#127 #464029
>>464023
для xcode версия есть?

>триальная версия вечная


то есть платить не надо вам?
#128 #464061
>>464005
Спермоподелие не нужно.
16 Кб, 281x228
#129 #464072
>>464029
За xcode не знаю.
Я качал плагин для MVS, там оно выделяет отдельную вкладку по вывод результатов анализа как и Cppcheck. В выводе указывается ошибка, файл и строка, где они обнаружены. Кликая по строке вывода ты сразу переходишь к строке с ошибкой. В триальной версии единственное ограничение - 10 таких кликов, можно же просто открывать вручную не кликая.
#130 #464233
>>464008
##купи, плиз##
#131 #464235
>>464029
Не слушай их. Есть триальная версия, пользуйся, тестируй, а дальше пиши на почту
sage #132 #464247
>>464233
Было бы под линупс, может и купил бы, а так могу только спермой заплатить.
C++ #133 #464288
Попробую прощупать почву. Двумерное дискретное преобразование Фурье. Имеются написанные библиотеки?

Подчеркну, именно 2D ДПФ, не БПФ. Количество точек по x == количество точек по y, но не равно 2^n.
sage #134 #464296
>>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

#135 #464343
>>464288
ради ДПФ тянуть либу? там же 4 строки кода.
#136 #464351
Решил написать сжатие zip. Постепенно углубляюсь в тему. Если правильно понял, то существует несколько кошерных библиотек аля 7zip, zlib и др. Подскажите, как качественно использовать/подключать их в VS без регистрации и смс; может есть какой-нибудь гайд или статья на хабре.
sage #137 #464362
>>464351
qCompress(data, 9);
#138 #464537
Есть ли такой сервис, который на основе кода построит карту выделения памяти для переменных и визуально всё покажет?
107 Кб, 425x282
sage #139 #464538
>>464537
Конечно. Вот пример работы.
#140 #464769
как быть с русскими символами в массивах и стрингах? Есть мысль что мне будет сложно считать строки где в перемешку русские и латинские символы. Проблема из-за того что русский символ занимает в два раза больше ячеек в массиве. Куда копать?
#141 #464771
>>464769
В няшной не знаю, а для C++ я пользую Qt, там с кодировками все норм
Можешь посмотреть еще на std::wstring
sage #142 #464772
>>464769
Qt, либо перейти на другой язык. Можно еще пердолиться с разными wstring'ами, как >>464771 сказал, но легче перейти на другой язык.
#143 #464781
>>464769
А в чем проблема со считыванием, анончик? Сейчас написал helloworld, который cin'ом считывает в string и потом выводит размер и введенную строку. Ввёл ему abcdабвг - 12 байт, вывел все корректно. Тебе надо количество символов считать что ли?
#144 #465019
Ебанутая ебанушка врывается в тред. Есть несколько строк std::string. Они петушатся в циклах. Я хочу странного: хочу, чтобы в каждой строке последний символ (который идёт до '\0') был привязан по ссылке к переменной char.

Т.е. я меняю эту переменную в цикле, а меняются все последние символы этих строк. Это возможно вообще? Как?
#145 #465022
>>465019
Да, возможно, но в плюсах как всегда через жопу.
Гугли "реактивное программирование".
#146 #465027
>>465022

> хочу, чтобы в каждой строке последний символ (который идёт до '\0') был привязан по ссылке к переменной char


> реактивное программирование


Проиграл с толстяка.
#147 #465056
>>465027
А что не так? Раз хотит, можно и сделать.
sage #148 #465083
>>465019
[code lang="cpp"]
std::string s("yoba");
char &last = s[s.length - 1];
for (int i = 0; i < 26; ++i) {
last = char(65 + i);
std::cout << s;
}
[/code]
#149 #465085
>>465083
Сразу несколько строк же.
sage #150 #465086
>>465083
И сразу фикс:
[code lang="cpp"]
char &last = s[s.length() - 1];
[/code]
sage #151 #465087
>>465085
И какое изначально значение должно быть у этого символа тогда? Может оно изначально везде разное.
#152 #465094
>>465087
Выставь перед циклом её значение, чтобы у всех одинаковое стало. Мне интересно другое: можно такое для трёх строк написать?
sage #153 #465097
>>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]
sage #153 #465097
>>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]
sage #154 #465099
>>465097
Немного обосрался. Терпеть не могу итераторы, самый бесполезный паттерн.
[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;
}
//и другие оператоы
};

int main()
{
std::string s1("xxx");
std::string s2("yyy");
Char c('z');
c.addString(&s1);
c.addString(&s2);
foreach (int i, bRangeD(0, 10)) {
c = char(65 + i);
std::cout << s1 << " " << s2 << "\n";
}
return 0;
}
[/code]
sage #154 #465099
>>465097
Немного обосрался. Терпеть не могу итераторы, самый бесполезный паттерн.
[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;
}
//и другие оператоы
};

int main()
{
std::string s1("xxx");
std::string s2("yyy");
Char c('z');
c.addString(&s1);
c.addString(&s2);
foreach (int i, bRangeD(0, 10)) {
c = char(65 + i);
std::cout << s1 << " " << s2 << "\n";
}
return 0;
}
[/code]
#155 #465171
>>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]
Учись
#157 #465178
Посоветуйте бесплатный сайтик типа кодеакадеми, только с с/с++ и для нубов.
#158 #465180
>>465178

>с/с++


>для нубов.


)
#159 #465186
>>465178
Локалхост, еба
#160 #465194
>>465180
Все же знают что этот тред для вопросов нубов к гуру с++
#161 #465195
>>464781
Вот если взять вашу строку string strr {"abcdабвг"}, и например по заданию надо вывести на экран шестой по порядку символ. Как ни хотелось бы, но нельзя написать так: cout<<strr[6];
Мне приходится писать cout<< strr[7]<<strr[8];
Хотя если бы я писал только на латнице проблем не было бы.
#162 #465196
>>465195
фикс : все индексы минус один
sage #163 #465203
>>465171

>учись


На c++ напишешь - поучусь. А пока что я учусь твоей мамаше в очко засаживать. Неплохо получается, кстати.
#165 #465326
Посоны, я могу в английский на уровне чтения, но не на уровне придумывания понятных названий.

Есть две compile-time функции (как это называется правильно?), определяющие является ли тип А базовым для Б
Первая убирает все типовые модификаторы и сравнивает результаты, а вторая ничего не убирает и сравнивает, к примеру, A & с B & и т.д.
Как их назвать?
Алсо, почему еще важен порядок хуевин из std::type_traits?
compile-time быдло
#166 #465351
Чем отличается L"строка" от u"строка"? Почему wchar_t 4 байта на линуксе и 2 байта на винде?
#167 #465358
>>465351

> Чем отличается L"строка" от u"строка"?


Второе в utf-8 вроде как.

> Почему wchar_t 4 байта на линуксе и 2 байта на винде?


Первое — UCS-4, второе — скорее всего рак по имени UTF-16.

Заодно держи вот это: http://utf8everywhere.org/
#168 #465362
Программач, подскажи насчет архитектуры. У меня в приложении есть один вью и две модельки, которые в него отображаются. Каждой модельке соответствует своя менюшка в виде отдельного модального окна. Залупа в том, что с одной стороны надо объединять менюшки с моделями в пары, с другой -- менюшки это явно интерфейс, то есть нужно их объединять с вью.

Как их все-таки лучше разложить в плане архитектуры?
#169 #465395
>>465362
Модели объеденены с меню, меню объеденены с вью.
#170 #465396
Сам, С++-ч, разберите, пожалуйста, что делает эта функция (нашел в интернетах). Желательно по строчкам. Что за структура 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]
#171 #465403
>>465396

> Что за структура termios?


Пользовательский тип, может быть что угодно.

> Почему экземпляры созданы как struct


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

> Что за tcgetattr


Наверное заполняет структуру

> чем она лучше стандартных функций ввода


Стандартные функции не заполнят пользователский тип данных без перегрузки, а tcgetattr уже есть (если это действительно сишная библиотека)

> тильда


Побитовое отрицание
#172 #465405
>>465396
вероятно небуферизированный ввод, аналог getch() в win
#173 #465406
>>465395
То есть, ты предлагаешь делать модули меню-модель и привязывать отображение модели к тому, какое меню сейчас используется? Грубо говоря, меню тянет за собой модель?
#174 #465411
>>465406

> меню тянет за собой модель


Ну да, откуда оно еще сможет вытащить инфу?
#175 #465416
>>465411
Я неправильно сформулировал. Расскажу подробнее. Представь себе игорь. В нем есть главное меню, где сверху менюшка с кнопками, а сзади что-то интересное происходит для красоты, и есть непосредственно игровой процесс, где тоже можно вызвать меню нажатием на эскейп. То есть, модель на меню не завязана ничем, кроме соответствия меню модели. При этом меню очевидно является дочерним окном окна-отображения. Но хочется все-таки четко задать связь меню и модели, потому что может понадобиться сделать, например, третью пару для редактора уровней или там окно загрузки сделать отдельной парой. Как-то так.
#176 #465419
>>465411
Плюс, модель все-таки первична, а меню вторично, а так выходит наоборот.
#177 #465421
У тебя одна модель на все приложение?
#178 #465422
>>465405
что значит небуфферизированный? смутно представляю о буфферизации вывода (чтобы уменьшить количество прерываний), а с вводом то это зачем?
#179 #465424
>>465421
Нет, для каждого модуля своя.
#180 #465435
>>465396
Это перевод терминала в не каноничный режим, не оч врубую какой смысл без c_cc[VMIN] = 0 ; .c_cc[VTIME] = 0 ; так как с ним получится неблокирующее получение ввода.

И разве не линупсонли?
#181 #465436
Но а так получается что убирается эхо, то есть не видно ввода на терминале, ну и не ждёт пока пользователь нажмёт пробел, символ напечатан - сразу получили. Вроде как.
#182 #465437
>>465436

>нажмёт интер

#183 #465449
[code]

#include <iostream>
using namespace std;

int main() {
\t
\tchar g = '|_|';
\tcout << g << endl;
\treturn 0;
}

[/code]

Почему вместо |_| у меня выводится на экран только одна палочка - | ?
#184 #465450
>>465449
И как сделать что бы выводилось |_|?
#185 #465451
>>465449
char g[]="|_|"
#186 #465452
>>465450
char* g = "|_|";
#187 #465453
>>465451
>>465452
Спасибо, добраноны!
#188 #465472
>>465422
энтер не надо жать а символ уже прочитан
3 Кб, 210x150
11 Кб, 960x722
#189 #465493
антоны, есть тут те кто работал с winapi ?
надо запилить текст с верхним подчеркиванием, проблема в том что в Window xp символ верхнего подчеркивания(U+00AF, U+0305) не отображается или отображается справа от символа (а не над ним)
алсо в функции CreateFont можно создать текст только с нижним подчеркиванием
#190 #465508
>>465493
Напиши говнокостыль, в котором ты будешь рисовать нужный тебе текст, а над ним руками рисовать линию нужной толщины для нужного размера шрифта. Или гугли на codeproject.
#191 #465514
Я тут немного в процессе изучения этого вашего С++.
Есть три класса:
class A
{
virtual method1()=0;
virtual method2()=0;

}

class B
{
method1() {}
}

class C : public A, public B
{
method2(){}
}

Компилятор говорит, что класс С - абстрактный, так как нет реализации method1. Но ведь я вроде как наследую её из класса B, нет? Как избавиться от этой ошибки?
#192 #465515
>>465514
B::method1 не имеет отношения к классу А.
Наследуй В от А, потом С от В
35 Кб, 513x469
sage #193 #465517
>>465508
Windows-way во всей красе.
#194 #465519
>>465517
Ещё один всё понял
sage #195 #465520
>>465514
Не слушай этого >>465515, тебе нужен метакомпилятор парадигм. Поставь сборку винды от Zver, там в комплекте идет, еще и анафорическая проверка синтаксиса будет, вообще збс.
#196 #465528
>>465517
А что ты хотел от XP? В UNIX 5 тоже не получится этого сделать.
#197 #465530
>>465515
А - вроде интерфейс. Б не реализует его целиком, а Ц - реализует, но часть методов наследуется из Б. А - абстрактный класс, Б и Ц - нет.
5 Кб, 495x294
#198 #465531
Плюсач! Поясни почему это говно не работает?
#199 #465533
>>465530

>Б не реализует его целиком


Анон же тебе написал, В не имеет никакого отношения к А вообще, хоть у них там и имена методов одинаковые - сами методы разные, потому-что один объявлен в А, второй в В.
#200 #465534
>>465533
Так что мне делать то? Переопределить работающие методы в C, просто чтобы A их принял?
#201 #465535
>>465531
Зачем тебе инкрементировать maxmines? С большой вероятностью у тебя бесконечный цикл получится.
sage #202 #465536
>>465531
В розетку воткнул? Как же вы заебали, необучаемые.
sage #203 #465537
>>465528
Нахуй надо использовать винапи, когда есть куча нормальных библиотек. Qt.
2 Кб, 260x60
#204 #465538
Кто-нибудь сталкивался с libssh, а конерктнее -- с её C++ wrapper?
Не понимаю, как мне получить вывод после requestExec(). Помоги, анон, прошу!
#205 #465541
>>465535
Для того чтобы если на клетке уже есть мина программа вышла из if'а и опять повторил итерацию. Я хз что не так с этим языком.
#206 #465543
>>465541

>Я хз что не так с этим языком


Может это с тобой что-то не так? Удали maxmines++;
#207 #465550
>>465537
Qt - говно.
#208 #465553
>>465550
О, это ты зря.
sage #209 #465560
>>465550
В общем, даже лень тебе что-то объяснять.
Таких, как ты — миллионы, серых и отвратительных, как плевки на асфальте. Приходящих сюда ежедневно с ведром грязной воды, которой мыли полы, бла-бла-бла. Уебывай, короче.
#210 #465572
>>465537

>Qt


Зачем цеплять 50 мегабайт длл-ок для вывода строчки текста, если можно обойтись без них?
кококо, память дишовая
#211 #465573
>>465572
А дальше Hello world никак уйти не получается?
sage #212 #465577
>>465572
Пиши на ассемблере, хули, раз такой экономный. Исполняемые файлы программы - самая малая ее часть, если это не лаба_3, конечно.
#213 #465600
>>465577

>Исполняемые файлы программы - самая малая ее часть


Большинство программ - это исполняемые файлы и все.
47 Кб, 566x678
#214 #465605
>>465577

>Пиши на ассемблере, хули, раз такой экономный


Зачем на ассемблере, у меня свой рендер написан на OpenGL, с хинтингом и сабпикселями. 11 килобайт исходников включая шейдеры.
#215 #465606
>>465605
Что за оболочка такая?
sage #216 #465607
>>465605

>11 килобайт


А в чем разница, если что одно, что другое качается не больше пары секунд?
#217 #465609
>>465606

>Что за оболочка такая?


Gnome 3

>А в чем разница, если что одно, что другое качается не больше пары секунд?


100 мегабайт кутишных либ будут качаться далеко не пару секунд, особенно через 2g.
#218 #465610
>>465609

>Gnome 3


А чего он такой хороший? Небось падает постоянно или жрет память, как прокаженный, да?
#219 #465618
>>465610
сьеби на лор паскуда ебаная
#220 #465619
>>465618
Ты ответь на вопросы-то, оптимизатор хуев.
#221 #465620
>>465610

>Небось падает постоянно или жрет память, как прокаженный, да?


Это от дров на видео зависит. У меня на интеле очень редко падает, жрет умеренно и не течет.
#222 #465621
>>465620
Умерено - это сколько?
#223 #465622
Олсо, посоветуйте какой-нибудь актуальный ноутбук под шлинкусы? Только чтобы кинцо посмотреть можно было в хорошем в разрешении. В игори практически не играю, а если и играю, то в инди-парашу.
#224 #465623
>>465600
А сейчас скачай Dependency Walker и посмотри насколько твоя программа "минимальна"
sage #225 #465625
>>465609
Было 50, теперь уже сто, да? Дальше гигабайт скажешь?
Средненькое приложение на Qt4 без вебкита тянет около 15-20 МБ зависимостей. Алсо,

>2g


Ты бы еще через 56 КБ/с модем сидел.
#226 #465626
>>465623

>А сейчас скачай Dependency Walker и посмотри насколько твоя программа "минимальна"


Я статически все собираю. Под виндой внешние зависимости только -lopengl32 -luser32 -lkernel32 -lglu32 -lgdi32
#227 #465627
>>465625

>Было 50, теперь уже сто, да?


50 - минимум с ICU, если не сжимать. 100 - средний набор.
#228 #465628
>>465621
Около 300 метров.
#229 #465633
>>465625

>Ты бы еще через 56 КБ/с модем сидел


Думаешь за пределами МКАДа везде 4g?
#230 #465636
>>465605
1) Что за просмотрщик? Почему мой nautilus так не умеет?
2) Поделись библиотекой
#231 #465638
>>465636

>Что за просмотрщик?


Это программа лол

>Почему мой nautilus так не умеет?


Может потому, что у меня 3.16?

>Поделись библиотекой


Библиотеки еще нет. Когда оформлю все нормально, выложу скорее всего.
#232 #465642
>>465508
дело в том что мне надо рисовать линию только над одной буквой, остальные же должны быть без подчеркивания а это уже довольно нетривиальная задача, поэтому собственно и спрашивал
sage #233 #465644
>>465627
Ты что-то делаешь не так. Даже на 5 кьюте у меня больше 50 с вебкитом не было.
>>465633
А нахуя тебе качать что-то через мобильный интернет? И да, даже в моей мухосрани уже 4ж давно тестируют.
#234 #465645
>>465642
А в чем проблема рисовать в два прохода, буквы, потом подчеркивания?
#235 #465646
>>465644

>Даже на 5 кьюте у меня больше 50 с вебкитом не было


Сейчас посмотрел, на 5.0.2 Core + Widgets + Gui + ICU - 57 метров. Вебкит с потрохами - еще 30 метров. Со времен 5.0.2, я думаю, размер только вырос.
#236 #465651
>>465638
я про то, что на фоне. Красивая и наглядная иерархия файлов - это наутилус?
#237 #465652
А статично ваши гуи не цепляются, с вырезом ненужного функционала?
#238 #465654
Или там тоже на мегабайты идёт тема? Я просто гуи не накатывал, строго суровый терминал.
#239 #465655
>>465651

>Красивая и наглядная иерархия файлов - это наутилус?


Это в 3.10 или 3.12 вроде добавили. В настройках надо галку поставить "показывать в виде дерева".
#240 #465656
>>465652

>статично ваши гуи не цепляются


Надо за лицензию платить, двести баксов в месяц на разработчика.
#241 #465658
>>465656
Разве ку т не швабодное?
#242 #465665
>>465658
Для коммерческих проектов - пока линкуешься динамически. Статическая линковка только для оупенсорса или по лицензии.
sage #243 #465669
>>465658
Да не слушай ты долбоебов. Статическая линковка возможна, если ты лицензируешь свое поделие под GPL. Продавать тебе его никто при этом не запрещает.
#244 #465670
Оч нужно хороших статей по тредам/потокам в Ц, можно линь средствами. Пишу тест для сервера...
#245 #465726
Есть ли нормальная библиотека для работы со строками? Qt нинужно Требуется написать парсер текстового формата, а string ничего не умеет.
#246 #465730
>>465670
man fork
sage #247 #465770
>>465726

>нинужно


Твой школьный нигилизм нинужен, чепуш. Иди пиши свой велосипед, если такой умный.
#248 #465843
>>465770
Специально для тебя ведь это написал. Бомбануло, как и ожидалось.

>>465726
Жду адекватных ответов.
#249 #465866
>>465843
Бери std::string и не выебывайся. Или озвучь чего тебе в нем не хватает.
sage #250 #465883
>>465843

>эти мантры

#251 #465919
>>465726

>парсер текстового формата


Любую вменяемую реализацию Regexp? Использовать генератор парсеров? А чем не нравится std::string?
#252 #465990
>>465866
>>465919
Он мне не то чтобы не нравится, просто после питоновского f.read().strip().replace(' ', ' ').split(' ') делать то же самое практически вручную на плюсах кажется извращенством. Написать то это, конечно, не проблема, но наверняка уже есть готовые решения.
#253 #465991
>>465990
Ну, да. Это решение называется Qt.

Алсо, кто тебе мешает залезть в исходники Петона или того же Qt и реализовать то, что тебе нужно, самостоятельно?
sage #254 #465995
>>465991
Ума ему не хватит самому реализовать.
#255 #465996
Ох, блядь, анончики. Что-то какая-то лютая прокрастинация навалилась на меня. По вузику с трудом какую-нибудь залупу делаю исключительно под самый-самый дедлайн. Код не пишу, вообще охуел.

Ещё одногруппники списывали задачки. Одна из задачек не работала, а препод её принял. Потупил в этот Ruby-код, который написал недели две назад. Нихуя не понял, блядь. Переписал на C++ и все заработало, да.

Препод дал задание написать простенькую игрулю на Qt&Ruby. Нахуй Ruby - хочу на С++ и что-нибудь годно и интересное, но боюсь обосраться.

Ноутбук уже напоминает, что стал старый. Намекает, что нужно искать работу. А осознание того, что к лету на работу вряд ли получится устроиться в качестве программиста, делает меня ещё грустить.

До сих пор не нашел внятной и подробной реализации Chaining Methods. Такое ощущение, что везде какие-то абстрактные примеры, хмык.
sage #256 #465998

>Qt&Ruby


А на Assembler&HTML ему не надо? Что за бред.
#257 #466000
>>465998
Ну у нас ребята крайне неопытные в программировании учатся на потоке, поэтому он решил пояснять за основы на Ruby, за что я ему благодарен, ибо действительно оценил этот язык.

Потом он решил нам пояснить за GUI. Почему от tk он отказался, я так и не понял. Взял Qt и Ruby, а я вообще удивлен, как это говно вообще работает. Впрочем, он вроде бы C++ погроммист, поэтому игрулю буду ему на C++ писать. К тому же у меня не вышло подружить Qt и Ruby.
sage #258 #466005
>>466000
Блять, а как ты их подружить то собирался? Для чего и каким образом их смешивать в одном приложении?
#259 #466007
>>466005
Ну там есть ruby-qt4 библиотека. Подключаешь и работаешь. Конечно, я проигрывал, когда сигнал и слот передавался просто, как название метода в кавычках, но все равно прикольно было.
sage #260 #466011
>>466007
Так бы и сказал, что binding кьюта для руби. Хз что там можно не осилить, оно же в одну команду ставится из рубишных репозиториев.
#261 #466013
>>466011
А у меня не встала. Ошибок целый вагон. Одну пофикшу @ 10 выпадает. А этим говном мало кто пользуется, как я понимаю, и решения висят на всяких мелкофорумах с обсуждением на 50 страниц, блядь.
#263 #466017
>>466016
Есть такое. Может быть, на выходных разберусь в чем проблема, но мне-то лучше практиковать C++, верно?
sage #264 #466018
>>466017
Ты меня спрашиваешь? Что больше нравится, то и практикуй. Все эти срачи о том что язык1 лучше язык2 разводят тупые школьники.
#265 #466020
>>466018
Не, не спрашиваю. Просто проебался с концовкой предложения.
#266 #466039
Ребята, посоветуйте мануал какой нибудь по С, только на русском. Заебался писать функции в матлабе, хочу стать настоящим погромистом.
#267 #466040
>>466039
Язык программирования С. Керниган, Ритчи. Просто 11/10 книга.
#268 #466042
>>466040
Спасибо большое! В пдфе её можно достать? Я просто не в России живу.
#269 #466044
>>466040
Уже нашел, спасибо друзья.
#270 #466103
>>465990
std::string + std::regex
#271 #466113
>>465730
Не понимаю чё за хуйня, когда пользуюсь fork программа не завершается на контрл+с. Я как-то не правильно завершаю детей? Дико бесит, я не могу так отлаживать.
#272 #466116
>>466113
А всё ясно, чёт я тупканул, у меня родитель ходил в код детя и там умерал.
#273 #466127
>>465991
А почему вообще такие базовые вещи приходится реализовывать самостоятельно?
По-моему это говорит о том, что C++ говно.
sage #274 #466129
>>466127
По-моему ты тупой хуесос, не умеющий смотреть дальше своего носа. Большинство проблем с добавлением современных фич :из-за подержания совместимости.
#275 #466149
>>466127
Посмотри чуть дальше stl. Там все давно уже есть. Хотя парсер можно и средствами stl реализовать быстро.
sage #276 #466154
>>466149
Это жи нужно что-то искать, а я хачу в языке из коробке.
#277 #466173
Чем отличается константа от константного выражения?
#278 #466175
>>466149
Более мене ВСЁ появилось в стандарте С++11. Например, в классе std::string нет реализации функции Format() со списком параметров типа sprintf(). Эту костылину нужно писать самому или делать вид что тебе это и не нужно вовсе.
#279 #466202
>>466129
А, т.е. C++ это легаси-говно, я понял
#280 #466203
>>466175
У белых людей вот такая штука есть
[code lang="scala"]s"Values: $var1 ${var2 + var3}"[/code]
#281 #466210
>>466203
Ну не траль
997 Кб, 785x678
#282 #466213
>>466210
Так что мешает сделать так же?
sage #283 #466223
>>466202
Не совсем так, но ты на верном пути.
sage #284 #466224
>>466173
constexpr вычисляется на этапе компиляции.
sage #285 #466225
>>466213
Не мы в комитете сидим. Там дяденьки в возрасте, со своими тараканами, и не всегда они могут угнаться за каждым новомодным говнецом (да и не за всеми полезными штуками, увы). Хотя бы совместимость поддерживают и вводят при этом новые и новые фичи, уже очень хорошо. Но чуть больше гибкости им бы не помешало, согласен.
44 Кб, 500x332
#286 #466228
>>466225

> Там дяденьки в возрасте, со своими тараканами


Ну тогда всё ясно
#287 #466231
>>466228
Уж всяко лучше поехавших школо-революционеров.
sage #288 #466233
>>466228
Если ты что-то имеешь против Столлмана, то мне тоже все с про тебя ясно.
#289 #466234
Программач, объясни мне, почему так никто не пишет и где это говно с точки зрения алгоритмов.

http://www.fayloobmennik.net/4810014

Задача: многопоточная факторизация входящего потока чисел.
#290 #466235
>>466233
Иди под струю, сектант.
#291 #466236
>>466154

> я хачу


Отлично сказано, бро. Таких хочух нужно продавать хачам для анальных утех.
#292 #466238
>>466234
Потому что императивная портянка
#293 #466239
>>466238
Было бы здорово, если бы ты развернул.
#294 #466247
>>466234
У меня твой файлообменник не работает. Рекомендую использовать всякие pastebin или ideone.
#295 #466250
>>462718
подскажите пожалуйста решение, дан массив структур, содержащий имя и фамилию студента,
курс, группу и место проживания(дом, общежитие, съёмное жильё). Как получить списки студентов в алфавитном порядке по курсам, проживающих в общежитии?
91 Кб, 604x590
#296 #466256
Вечер в хату, поцаны. Поясню за программирование кластеров, видеокарт, вычислительных ускорителей, немного за архитектуру, работу с памятью, линейную алгебру. Qt-мрази из треда руку не подавайте.
#297 #466257
>>466239
Развёртываю: процедурная портянка буквоговна как в 70-х.
#298 #466259
>>466250
Проще всего сделать твою laba1 вот так: https://cpplinq.codeplex.com/
#299 #466262
>>466257
Я продолжаю тебя не понимать. Абстракция соблюдена, инкапсуляция тоже. Может быть, попробуешь романов привести?
#300 #466263
>>466250
[code lang="scala"]
students.filter(_.mestoProzhivania == "obschezhitie").groupBy(_.kurs).mapValues(_.sortBy(_.name))
[/code]
#301 #466264
>>466262

>Абстракция соблюдена, инкапсуляция тоже


Даже близко ничего этого нет.
#302 #466265
>>466264
Анон, ты можешь сказать что-нибудь по сути?
#303 #466267
>>466265
Я тебе сказал, что по сути у тебя процедурная портянка буквоговна.
Попробуй хотя бы переделать это в более функциональный вид, без говнопеременных, говнобуфферов и говноциклов.
#304 #466269
>>466267
Не вижу ничего по сути. Ты сейчас бросаешься терминами, а я бы хотел услышать конкретный ответ. Например, мог бы рассказать, что именно там сделано не по ООП и как сделать в нем.
#305 #466272
>>466269
Ок, сделай нормальный интефейс с функцией [code lang="cpp"]LCM getPrimesOf(const uint64_t number);[/code]
, и уже к нему реализацию, вместо говна размазанного по 10 файлам.
sage #306 #466273
>>466235
Я не сектант, маня, чини детектор.
>>466256

>поясняю за байтоговно, еблю в жопу и факториалы


Ясно.
#307 #466278
>>466272
Спасибо! Вот это уже полезно, и я тебя почти понял. Но как ты предлагаешь это делать многопоточно без буфера?
А что с файлами не так? Ты думаешь, делать обертки для потоков это плохая идея?
#308 #466280
>>466278
Я не знаю цпп, но вот нагуглил специально для тебя:
http://en.cppreference.com/w/cpp/thread/future
http://en.cppreference.com/w/cpp/thread/promise

Сделай как-то так [code lang="cpp"]std::future<LCM> getPrimesOf(const uint64_t number);[/code], и там оборачивай вычисления в future
#309 #466281
>>466273
— раздался пронзительный голос со стороны параши.
Но пацаны, как всегда, не обратили внимания на это визгливое кукареканье. Пусть кукарекает, что с него взять?
Петух — не человек, и сегодня ему предстоит очень трудная ночь. У него уже в течение полутора лет каждая ночь была очень трудной, и теперь его анус был разработан настолько, что он без труда мог спрятать в нём банку сгущёнки.
sage #310 #466282
>>466281
Луркоеб, плис.
#311 #466293
Господа. Паттерны проектирования. Есть ли какой-нибудь источник, который поясняет когда какой паттерн использовать? Какие-то типичные задачи и т.д.
#312 #466296
>>466293
"Паттерны проектирования" - Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс
#313 #466298
>>466296

>"Паттерны проектирования" - Э. Фримен, Э. Фримен, К. Сьерра, Б. Бейтс


>Книга будет интересна широкому кругу веб-разработчиков


Или похуй?
sage #314 #466299
>>466293
http://rghost.ru/6js6vLSFq
Я правда уснул где-то на третей главе.
sage #315 #466300
>>466298

>Книга будет интересна


>интересна


Смешно.
#316 #466302
>>466300
>>466299
Да мне просто надо понять где какой паттерн ебашить, а то постоянно преследует ощущение, что я очень ебусь в жопу.
#317 #466303
>>466302
Это становится очевидно, с опытом.
10 Кб, 233x217
#318 #466305
>>466302

> постоянно преследует ощущение, что я очень ебусь в жопу


> C++ тред

#319 #466306
А ещё, Qt-кун, подскажи про тэги в LaTeX?
Вот часто вижу
\tag[shit]{shit}
или
\tag{shit}
А в чем разница между квадратными и фигурными скобками?
#320 #466307
>>466305
Ну так без смазки же. С паттернами приятней.
sage #321 #466321
>>466306
В квадратных скобках необязательные аргументы. http://stackoverflow.com/questions/1812214/latex-optional-arguments
#322 #466323
Аноны, что значит "метод для отображения стоимости товара в виде строки"?
И правильно ли я вообще сделал эту хуйню?

Создать класс Goods (товар). В классе должны быть представлены поля: наименование товара, дата оформления, цена товара, количество единиц товара, номер накладной, по которой товар поступил на
склад. Реализовать методы изменения цены товара, изменения количества
товара (увеличения и уменьшения), вычисления стоимости товара. Должен
быть метод для отображения стоимости товара в виде строки.

http://pastebin.com/7QetZ8Kh
sage #323 #466324
>>466302
Паттерны придуманы для того, чтобы кодомакаку можно было за вменяемые сроки научить писать код, понятный остальным кодомакакам в команде. Более-менее смышленый человек интуитивно использует нужные паттерны, даже не зная о том, что это паттерны. В любом случае, начинающему их учить смысла нет, один вред будет. Когда уже кое-что можешь и понимаешь, тогда полезно посмотреть, как другие решают типовые (и не очень) задачи, а до этого - не стоит. Яркий пример, почему не стоит - долбоебы, знающие jQuery, но не знающие JavaScript.
sage #324 #466325
>>466323

>Аноны, что значит "метод для отображения стоимости товара в виде строки"?


Это значит старый долбоеб вместо препода. Поссы ему в рот и проблема решится сама собой.
#325 #466326
>>466325
Не, препод нормальный, просто методичка эта с заданиями не первый год уже используется.
Можно просто забивать на это тогда?
sage #326 #466331
>>466326

>методичка эта с заданиями не первый год уже используется


>препод нормальный


Нет, не нормальный.
#327 #466332
>>466323
Нет. Вот так сделай http://ideone.com/H44bau
#328 #466379
>>466263
а можно вот без этого? как по-другому отсортировать?
58 Кб, 700x467
sage #329 #466381
>>466379
Можно.
#330 #466382
>>466381
ну не траль, плиз помоги
#331 #466385
>>466379
Что в твоём понимании по-другому?
#332 #466387
>>466385
ну, без filter, roupBy, sortBy
на чистых плюсах в общем))
#333 #466393
>>466387
Ну сделай из этого хуйню вроде
[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]
И т.д.
#334 #466436
>>466213

>Так что мешает сделать так же?


История с xml в скале, например. Чем меньше стандарт, тем проще его поддерживать.
#335 #466441
>>466436

>С++


>меньше стандарт


>проще поддерживать


Топ кек
#336 #466444
>>466393
а моно как-нибудь без векторов?
#337 #466446
>>466444
Схуяли?
#338 #466450
>>466446
ну просто я не знаю векторы
#339 #466452
>>466450
Ну значит самое время выучить
#340 #466454
>>466452
ну няш)), помоги пожалуйста, подскажи решение без векторов и без sortBy
#341 #466456
>>466454
Берёшь решение с векторами, и переписываешь без векторов. Очевидно же.
#342 #466477
>>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]
воот что эти строки обозначают, я не понимаю
#343 #466478
>>466477
Ну код значит берёт первый массив, и копирует во второй тех студентов, которые в общежитие.
#344 #466517
>>466250
Ты охуел? Ты тут каждую лабу выпрашивать будешь, мразь?
#345 #466524
>>466379
Вот тебе няшная сишная сортировка, но ты ведь всё равно не разберёшься, да? И свою написать ты тоже не сможешь.
http://www.cplusplus.com/reference/cstdlib/qsort/?kw=qsort
#346 #466531
Пока лень переписывать ту считалку линейных уравнений. Подумываю заебашить свой клиент для 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 объект. Насколько низко можно опуститься, чтобы получить как можно больше знаний, которые можно ебашить на работе, и не сильно выебать себя в жопу?
#347 #466540
Кто какие пост/пре-билд скрипты юзает? Накиньте еще идей
inb4:пизда твоей мамаши))) скриптоговно не нужно)))
#348 #466567
>>466540
А зачем это может понадобиться?
#349 #466585
>>466540
Ну у меня короч пост-билд копирует сбилженый бинарник в папку плагинов, а пре-билд эту папку удаляет.
#350 #466615
>>466531

> Пока лень переписывать ту считалку линейных уравнений. Подумываю заебашить свой клиент для vk.


Это которую?
#351 #466953
>>466531
С каких пор оно возвращает в JSON? Вроде всегда редирректило на REDIRRECT_URL с токеном в ссылке.
#352 #467032
>>466173
Константа - это пометочка для компилятора, чтобы он не разрешал изменять значение данной переменной с момента её инициализации. Значение может быть не известно на этапе компиляции.

Константное выражение - константа, значение которой известно на этапе компиляции. Нужна для удобства (избегаешь ошибок с "магическими" числами, для её изменения достаточно исправить определение, а не во всех местах, где она).
#353 #467038
>>466454
Ты охуел, что ли? Что может
быть проще, чем вектора?

>>466477
Первой строкой он создал вектор типа <Student> (вероятно, Struct из стринга, говна и мочи) через равно и инициализацию фигурными скобками. Равно я бы убрал, чтобы получить строгую C++11 инициализацию, это добавляет понимания, что происходит.

Второй строкой он создал вектор типа <Student> размера того же, что и первый вектор.

Третьей строкой он запилил функцию, которая видимо обёрнута классом, в которой есть первый вектор, и видимо второй тоже, т.к. это виидмо опечатка:

>students.begin(), students.end(), students.begin()

#354 #467071
>>467038

> Третьей строкой он запилил функцию, которая видимо обёрнута классом, в которой есть первый вектор, и видимо второй тоже, т.к. это виидмо опечатка:


Да и вообще там надо что-то типа std::back_inserter
Аноним #355 #467107
Допоможи божественный анон с написанием сборщика мусора. Си без крестиков (С99) - есть массив указателей вида void asd = NULL;
Покажи по хардкору, как в него безопасно покласть указатели на выделенную память, а затем ещё безопаснее освободить.
#356 #467109
>>467107
Взять Java
#357 #467111
>>467071
Что такое std::copy_if по-твоему?
Аноним #358 #467112
>>467109
От ООП меня тошнит. При этом не обязательно его использовать, достаточно, чтобы оно просто было рядом.
#359 #467113
>>467112
Ну тогда Haskell
Аноним #360 #467117
>>467113
Как то подозрительно ты меня на друге ЯП сподвигнуть пытаешься. Я лучше на FASMе сборщик напишу, чем буду учить ещё это.
#361 #467121
>>467117

> Я лучше ведро говна сожру, чем возьму подходящий инструмент, как нормальный вменяемый человек.

#362 #467123
>>467107

> безопаснее освободить


Никак.
http://www.linuxjournal.com/article/6679?page=0,0
#363 #467124
>>467117
А нахер тебе вообще сборщик мусора? Какой дегенерат его вообще придумал? Вот представь, тебе пришла идея в голову:
А ДАВАЙ Я НЕ БУДУ ВЫТИРАТЬ ЖОПУ И ВООБЩЕ БУДУ СРАТЬ ПРЯМО В ШТАНЫ, ЧТОБЫ ГОВНО ВАЛИЛОСЬ ПО ЛЯЖКАМ И ВЫПАДАЛО ИЗ ШТАНИН! А ПОТОМ, КОГДА ШТАНЫ НАЧНУТ РВАТЬСЯ ОТ ГОВНА, РАСПИРАЮЩЕГО ИХ, Я ПОЗОВУ СПЕЦИАЛЬНОГО ЧЕЛОВЕКА, КОТОРЫЙ ВСЁ ЭТО ГОВНО ВЫЧИСТИТ! И ДАЛЬШЕ БУДУ СРАТЬ В ШТАНЫ! ГЛАВНОЕ - ЧТОБЫ НЕ ХОДИТЬ ДО СОРТИРА И НЕ ВЫТИРАТЬ ЖОПУ, ЭТО ЖЕ ТАК ДОЛГО И НЕУДОБНО!
Гениально звучит, не так ли?
Аноним #364 #467127
>>467121
Тебе видать невдомёк, что мои поделки нельзя делать надувным молоточком.
>>467124
А твой высер читать не интересно.
#365 #467129
>>467127

> пок пок надувной молоток


Ясно
#366 #467130
>>467124
Лол, теперь примени эту аналогию к RAII в STL.
#367 #467133
>>467127

> мои поделки нельзя делать надувным молоточком


Ну расскажи нам про задачу, которую ты хочешь решить на сишечке со сборщиком мусора.
Аноним #368 #467136
>>467129
Весомый аргумент, а главное, очень остроумно и свежо написано.
#369 #467140
>>467130
Так RAII это же полная противоположность.
СРЁШЬ ТОЛЬКО НА УНИТАЗЕ, БОЛЬШЕ НИГДЕ! КОГДА ПОСРАЛ - ТУТ ЖЕ ВЫТЕР ЖОПУ НАЧИСТО И ПОШЁЛ ДАЛЬШЕ, КАК БЕЛЫЙ ЧЕЛОВЕК.
#370 #467141
>>467136
Из твоего вскукарека конечно так и прёт конструктивность
Аноним #371 #467147
>>467133
Статистический анализатор, хочу чтобы использовал векторы, по нескольку штук, с заранее неизвестными размерами, для этого нужна простая СУБД, а сборщик мусора нужен чтобы за ней подтирать автоматом.
Аноним #372 #467150
>>467141
Молчи, ты не интересен.
#373 #467152
>>466540
ну вот у меня сейчас почти на всем стоят подобные скрипты >>466585
Раньше юзал свой пре-билд скрипт, что выносил определения\специализации шаблонов в отдельные файлы и включал их в проект, сейчас им не пользуюсь; всякие статистики-хуистики, включенные сейчас во все ide и т.д.
Вот и спросил
#374 #467153
>>467152

>466540


>>466567
ответ этому
#375 #467154
>>467147
Ты сам понимаешь, что несешь? Или просто перечисляешь известные тебе баззворды в одном предложении?
Аноним #376 #467156
>>467133
>>467147
А суть скорее даже не в этом, а в том, что я кроме си мало что серьёзно изучал, тем более с ООП. И это не повод учить другие ЯП, спасибо, хватит с меня.
Аноним #377 #467157
>>467154
Нахуй иди обезьяна.
#378 #467159
>>467157
Пиздуй обратно в свой угадай мелодию тред
#379 #467161
>>467147
Ммм всё ясно, шизофреник.
Аноним #380 #467163
>>467159
К стати. Ссылочку кинь.
#381 #467164
>>467163
Ой, иди нахуй просто
93 Кб, 612x442
Аноним #382 #467165
>>467164
Как баба, ей богу.
#383 #467169
Блять, я думал это красноглазый саже-кун поехал, а енто какой-то нюфаня-долбоёб из /b
#384 #467173
>>467156

> это не повод учить другие ЯП


> Необходимость срубить дерево для меня не повод учиться пользоваться топором, вместо молотка.

Аноним #385 #467174
>>467169
Нафаня-долбоёб, а ты чо такой проницательный, что аж запутался?
Аноним #386 #467176
>>467173
Всё верно написано.
#387 #467181
Щибальбе!
#388 #467182
Оооо, ннихуя я промахнулся...>>467181
#389 #467192
>>467124

>А нахер тебе вообще сборщик мусора?


Ну например для того, чтобы избежать фрагментации кучи.
#390 #467193
>>467107
Взять boehm-gc
/thread
#391 #467194
>>467192
Аллокатор != сборщик мусора
38 Кб, 600x400
sage #392 #467195
Хули вы тут устроили без меня, дауны.
#393 #467196
>>467195
Я короче посетил семинар КРОКа. Заебался. Завтра отпишусь бугуртной пастой, лол.
#394 #467198
>>467196
ПишемХуесосим гц на сишке всем харкачем.
#395 #467199
>>467198

>гц


Что это?
#396 #467201
>>467199
Сборщик мусора.
sage #397 #467202
>>467199
Garbage collector жи. Другой вопрос - а нахуя? Основное преимущество сишки - скорость. С гц она его лишится.
#398 #467203
>>467201
>>467202
А причем тут семинар КРОКа, который я поседил. Олсо, они там почти все пишут на Java, меньше на C#. И практически нихуя на C++. Вот собственно от этого у меня и полыхнуло, однако офис там просто 10/10.

Булочками угостили.
sage #399 #467204
А я вам между тем покушать принес. Не совсем про кресты, но про Qt, а точнее QML. http://akreuzkamp.de/2013/07/10/webapps-written-in-qml-not-far-from-reality-anymore/
Суть - пишем в брошзере на QML, ~300 КБ жабаскрипта и вперед, никаких плагинов не требуется. HTML и CSS отправляются туда, где им и место - на помойку... сказал бы я, но, увы, проект еще довольно сырой и далеко не все фичи QML поддерживает.
#400 #467206
>>467203
проебался
>>467198
>>467195
#401 #467209
>>467204
В чём профиты то?
sage #402 #467210
>>467209
Не писать на HTML-параше и CSS-дрисне. Только QML и жабаскрипт (тоже не ахти, но из всех сортов говна самый вкусный).
#403 #467212
>>467206
Посему я сегодня озадачен вопросом, а найду ли я РАБОТУ C++ пограммистом, ведь на нем хуй да нихуя пишут.

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

Олсо, поясните за объекты.
Вот ты пишешь в {Class object;}, что создаешь какой-то объект. Программа выходит из скоупа и разрушает объект автоматически. А теперь когда тоже самое делаешь через new. Ведь в таком случае память надо подчищать самому - писать деструктор, вызывать его и т.д. А когда собственно использовать это ручное выделение\высвобождение памяти?
sage #404 #467215
>>467212

>А когда собственно использовать это ручное выделение\высвобождение памяти?


Когда объект должен жить после выхода из скоупа/когда объект слишком большой, чтобы размещать его на стеке. Для управления памяти есть умные указатели.
sage #405 #467216
>>467215

>памятью


фикс
#406 #467220
>>467212

> найду ли я РАБОТУ C++ пограммистом


Постараешься – найдёшь.

> нет специалистов, демографический кризис


Каких они там спецов то ищут, лол? Которые стандарт цитируют, как библию?

> А когда собственно использовать это ручное выделение\высвобождение памяти?


Нихуя не понял вопроса. Сейчас память ручками стараются не выделять, вроде бы. Но внутри различных инструментов автоматического управления памятью один хуй это используется.
#407 #467236
Ребята, малолетний сишник в треде! Есть неплохое знание си из учебников и универа, нет практического опыта, на вакансии тоже без слёз не взглянешь. Что делать? Осваивать ещё один язык или на си тоже можно куда-то попасть? В каких областях вообще пригодится чистый сишник?
#408 #467238
>>467236
Знанием одного языка тут особо не прокормишься. А вообще чистому сишнику прямая дорога в системное программирование или в микроконтроллеры всякие.
#409 #467241
>>467238
Есть шанс куда-то устроиться и научиться всему на месте, или нужны специальные знания?
#410 #467242
>>467241

> куда-то устроиться и научиться всему на месте


Такое бывает, но редко, чаще у студентов. Попробуй найти стажировку.
База нужна в любом случае.
#411 #467243
>>467242
А где стажировку искать? Я вообще на всяких сайтах с поиском работы, типа хх искал и ничего не нашёл. Есть специальные какие-то сайты?
#412 #467247
>>467243
А вот тут хуй пойми, сам в последнее время планирую съябывать из "науки" в продакшн.
Стандартный список сайтов с вакансиями:
Яндекс, job.ru, career.ru
#413 #467268
Короче, как я не пытался - адекватного генератора карт для игры "сапёр" я на плюсах не смог написать. Внезапно лоллирую. Вот вам моя лапша http://pastebin.com/XxZXZQrM которая вообще хуй знает каким боком умудряется увидеть "мину" там где её нету и поставить подсказку-цифру на той клетке где её быть не должно. Лол короче.
#414 #467310
>>467268
А ты еще больше ifов добавь, вдруг поможет?
на самом деле добавь по пустой строке/столбцу с каждой стороны и считай как белый человек, с единицы, проверяя у каждой клетки 8 соседей. И еще: не пользуйся endlом, он каждый раз принудительно очищает буфер. Скорее всего, тебе нужен простой '/n'.
#416 #467313
>>467310
Спасибо.
sage #417 #467317
>>467312
Такая же параша, как и хтмл, только угловые скобки убраны. Вся уебищность верстки остается.
#418 #467318
>>467317
Лол еблан, хоть бы до миксинов дочитал
sage #419 #467328
>>467318
Дочитал, такая же дписня, вид сбоку.
sage #420 #467329
>>467328

>дрисня


фикс
#421 #467330
>>467328
А убогое пердоликоподелие QML не дрисня. Ясно
sage #422 #467355
>>467330
Не дрисня.
#423 #467365
>>467355
И чем же оно лучше?
#424 #467374
>>467111
Я-то знаю, что такое copy_if, но он вместо использования вектора для отфильтрованных элементов использует исходный вектор. При этом за каким-то хуем под отфильтрованные элементы выделяется памяти как под исходные.
#425 #467377
>>467374

>Я-то знаю, что такое copy_if, но он вместо использования вектора для отфильтрованных элементов использует исходный вектор


Вот так надо, наверно
std::copy_if (students.begin(), students.end(), inObschezhitie.begin(), [](Student s){return s.mestoZhitelstva == "obschezhitie";});

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


А как ты узнаешь, сколько надо выделять?
#426 #467382
>>467140

> Так RAII это же полная противоположность.


Зачем? Каждый new это поиск в куче, а выделение памяти в управляемой куче идёт также быстро, как и на стеке. Это охуенное преимущество: можно тратить время на управление памятью, когда это удобно, а в моменты загрузки системы на это время не тратить. Плюс нет фрагментации, можно динамически загружать-выгружать объекты и переносить между серверами.
Я бы с огромным удовольствием писал на шарпе, вытаскивая в неуправляемую область только высокопроизводительный код, что на системах с общей памятью я и делаю
#427 #467383
>>467377

> Вот так надо, наверно


Ну я бы ещё константные итераторы брал, а не простые, потом количество студентов бы посчитал, хотя это ладно.

> А как ты узнаешь, сколько надо выделять?


А это std::vector автоматически делает, для этого push_back там и придумали. А чтобы с std::copy_if использовать придумали std::back_inserter...
#428 #467384
>>467383

>А это std::vector автоматически делает


Т.е. перевыделяет память по десять раз, вместо заранее выделенного места
#429 #467388
Ну и почему это говно проставляет меньше 10-ти мин в большей половине случаев http://pastebin.com/YL3Q6DbZ ?

Я ведь ему конкретно указал что надо проставить 10 мин и только потом выйти из цикла!
#430 #467391
>>467388
А ты не думал что "field[rand() % maxX + 1][rand() % maxY + 1] = '*';" может проставить мину по нескольку раз в одно поле?
#431 #467395
>>467391
Короче вроде понял почему такое гавно.
#432 #467398
>>467384
Да, но вот больше десяти раз он память вряд ли выделит: у тебя нет столько данных.
#433 #467401
>>467391
И как быть теперь? Я с этим говном уже день пятый наверное ебусь, то одно вылезет, то другое.
#434 #467403
>>467401
1) http://www.cplusplus.com/reference/random/?kw=random
2)
[CODE]int need_to_place = 99;
while (need_to_place > 0) {
int x = ...;
int y = ...;
if (have_mine(x,y)) continue;
place_mine(x,y);
--need_to_place;
}[/CODE]
#435 #467409
>>467401
Обрати внимание, у тебя генерируется четыре случайных числа на две координаты.
#436 #467420
>>467401
[code lang="scala"]
Random.shuffle(Array.fill(90)(" ") ++ Array.fill(10)("*"))
[/code]
#437 #467465
Не совсем по теме, но всё же вопрос: почему до сих пор хуеву тучу свободного софта пишут на C, а не на C++?
#438 #467467
>>467465
Потому что пердолики.
#439 #467468
>>467465
потому что с++ сосет по скорости у чистого с

И да, не всем нужны классы и ООП
#440 #467472
>>467468

>потому что с++ сосет по скорости у чистого с


Да, разница в целых 1.0000000000001 раз

>И да, не всем нужны классы и ООП


Не всем нужна квартира и горячая вода, в пещере норм будет.
64 Кб, 390x310
24 Кб, 600x600
11 Кб, 390x470
#441 #467474
>>467468

> потому что с++ сосет по скорости у чистого с

C/C++ #442 #467478
Спрошу у знатоков стандарта, наверно: имеются типы int / unsigned int.

Всегда ли двоичное представление положительных чисел для знаковых и беззнаковых типов совпадает? Или возможно "implementation defined"?
#443 #467490
>>467478

> двоичное представление положительных чисел для знаковых и беззнаковых типов совпадает


Не совпадает. Не в стандарте дело даже, а в бите для представления знака числа.
#444 #467494
>>467490
Хорошо. Напиши мне представление числа от 0 до 127 (возьми любое, например 4) для типов:

int8_t
uint8_t
#445 #467496
>>467494
От архитектуры вычислителя зависит.
#446 #467497
>>467494
Ясен хуй, в данном случае оно совпадёт.
01111111
01111111
#447 #467506
>>467474
пруфы?
#448 #467507
>>467506
Ну выбирай задачу, ты пишешь на си, я пишу на плюсах, и посмотрим, кто у кого сосёт. Я только гандон надену, а то запархатится от сишкамрази можно
#449 #467514
>>467496
>>467497
Господа, вы уж определитесь.
#450 #467522
>>467514
Стандарт не регламентирует расположение бита знака и вообще реализацию арифметики вычислителем. Может быть у меня математик-маразматик в качестве вычислителя, который значения записывает на тетрадном листочке, и у него sizeof(char) это четыре клеточки. И он в первой клеточке у signed char ставит плюсик, а у unsigned char никогда плюсика не ставит.
#451 #467526
На самом деле биты всё-таки должны быть. Ну, мой математик не заморачивается прямым и обратным кодом, а просто складывает и вычитает в столбик, записывая знак в первом бите. Он всё ещё соответствует модели памяти и стандартов типов из стандарта. Если это не так, то покажите, какому пункту он не соответствует.
#452 #467547
>>467522 >>467526
Ясно. Спасибо. Блядь, одни проблемы, никак кроссплатформенный код не напишешь. Придётся создавать дополнительный массив того же размера.
#453 #467549
>>467547
Ну вообще это не самое безосновательное предположение, плюс ты можешь в иницализации накатать тест с reinterpret_cast и если это предположение не выполняется просить обратиться в поддержку. С вероятностью 99.999% тест будет положительным всегда
#454 #467553
>>467549

>reinterpret_cast


Как влияет на быстродействие?
#455 #467656
>>467507
Без хуя гандон не нужен.
#456 #467670
>>467553
Никак. Это прямое указание компилятору "там лежит huita, иниибет". Просто по другому адресовать будет
#457 #467677
>>467553

> Как влияет на быстродействие?


Никак. Эта штука действует только на компиляторе. Собственно, с помощью неё ты бы потом и будешь интерпретировать знаковые, как беззнаковые.
#458 #467773
Продолжаю эпопею по сборке мусора. Интересует компетентное мнение. Код черновой.

#include <stdio.h>
#include <windows.h>
#define DLL_EXPORT __declspec(dllexport)

#include "userfool.h"

void trash = NULL;

DLL_EXPORT void TrashCleaner(void){
\tif(trash != NULL) do free(trash); while(++trash != NULL);
}

DLL_EXPORT void
save_malloc(int __size){
\tif(trash == NULL){
\t\t
trash = malloc(sizeof(void) 2);
\t\tif(trash != NULL){
\t\t\t
trash[0] = malloc(__size);
\t\t\tif(trash[0] == NULL){
\t\t\t\tfree(trash);
\t\t\t\treturn NULL;
\t\t\t}
\t\t\telse{
\t\t\t\ttrash[1] = NULL;
\t\t\t\treturn trash[0];
\t\t\t}
\t\t}
\t}
\telse{
\t\tint i;
\t\tfor(i = 0; trash != NULL; i++);
\t\ttrash = realloc(trash, sizeof(void) i + sizeof(void));
\t\tif(trash != NULL){
\t\t\t
trash[sizeof(void) i + sizeof(void)] = NULL;
\t\t\t
trash[sizeof(void) i] = malloc(__size);
\t\t\tif(trash[sizeof(void)
i] != NULL)
\t\t\t\treturn trash[sizeof(void) * i];
\t\t}
\t}
\t
\treturn NULL;
}
#458 #467773
Продолжаю эпопею по сборке мусора. Интересует компетентное мнение. Код черновой.

#include <stdio.h>
#include <windows.h>
#define DLL_EXPORT __declspec(dllexport)

#include "userfool.h"

void trash = NULL;

DLL_EXPORT void TrashCleaner(void){
\tif(trash != NULL) do free(trash); while(++trash != NULL);
}

DLL_EXPORT void
save_malloc(int __size){
\tif(trash == NULL){
\t\t
trash = malloc(sizeof(void) 2);
\t\tif(trash != NULL){
\t\t\t
trash[0] = malloc(__size);
\t\t\tif(trash[0] == NULL){
\t\t\t\tfree(trash);
\t\t\t\treturn NULL;
\t\t\t}
\t\t\telse{
\t\t\t\ttrash[1] = NULL;
\t\t\t\treturn trash[0];
\t\t\t}
\t\t}
\t}
\telse{
\t\tint i;
\t\tfor(i = 0; trash != NULL; i++);
\t\ttrash = realloc(trash, sizeof(void) i + sizeof(void));
\t\tif(trash != NULL){
\t\t\t
trash[sizeof(void) i + sizeof(void)] = NULL;
\t\t\t
trash[sizeof(void) i] = malloc(__size);
\t\t\tif(trash[sizeof(void)
i] != NULL)
\t\t\t\treturn trash[sizeof(void) * i];
\t\t}
\t}
\t
\treturn NULL;
}
#459 #467786
>>467773
Большего говна в жизни не видел
#460 #467793
>>467773
Ну и нахуй ты это говно без тегов сюда притащил? Выглядит уёбищно, потокобезопасности никакой.
sage #461 #467796
>>467773
Обосрался - уберись.
ULTRA PIDORASIQUE OPTIMIZATION BYUIDLO #462 #467830
Что быстрее:
mamashka[chto_to ? пара умножений : 0]
или
mamashka[пара умножений]
мимо-быдло-никогда-так-не-делающий
#463 #467833
>>467830
Возьми да замерь. Может у тебя там факториал считается.
#464 #467836
>>467833
Там что-то вроде a * b + n
А мерять не хочу, потому что

>ULTRA PIDORASIQUE OPTIMIZATION BYUIDLO

#465 #467842
>>467796
>>467793
>>467786
Каких тегов?
Каких потоков?
#466 #467843
>>467842

>Каких потоков?


Ясно всё с тобой
#467 #467844
>>467843
Ну надо же, да я как то не подумал, что тут жюри, меня оценивать будет.
#468 #467849
>>467836
Если асм сюда прикинуть, то получится вроде таких наборов инструкций
1.1:cmp,jmp,mov,mul,add
1.2:cmp,mov
2:mov,mul,add
Что я пытался изобразить, это что для 1 случая при вычислении пары умножений выполняется больше инструкций, но если вычислять не надо - меньше, а для второго, что он при вычислении пары умножений будет быстрее, но не будет экономить время на бессмысленных подсчётах.
Так что, если ты калькулировать будешь много, а отсеивать мало, то второй вариант должен выполняться быстрее первого.
#469 #467850
>>467843
Хорошо тебе, в простом мире живёшь. И поток только один у тебя бывает. И телепатами с детства окружён. И вообще, как бог - всё правильно думаешь, без тени сомнения.
#470 #467891
>>467677
>>467670
На самом деле влияет. Ибо на то, чтобы перенести данные из целочисленного регистра в регистры FPU, тратится процессорное время. Небольшое, но тратится. А это преобразование вполне может задействовать этот перенос.

Поэтому не стоит им злоупотреблять.
#471 #467913
>>467830
Надо замерять. Второе на классическом хуй86 из-за OoOE и конвейера может быть и быстрее на кропаль, а может и нет.
>>467849
Может конвейер заступориться из-за перехода, я бы ставил на второй вариант даже с отсеиванием.
>>467891
Путаешь static_cast и reinterpret_cast. Второй компилируется ни во что абсолютно, и время никуда не тратится (кроме компиляции).
#472 #467914
>>467913

> даже с отсеиванием


Даже с достаточно интенсивным отсеиванем
#473 #467915
#474 #467933
>>467677
>>467670
>>467913
Заебись. Я так и думал, в принципе, но решил уточнить.
#475 #468313
Анончики, всегда ли можно безопасно кастовать любые объекты в указатель на char и обратно?
#476 #468363
>>468313
Нет. В общем случае, reinterpret_cast, но надо понимать что делаешь. static_cast позволит только указатели на простые типы, dynamic_cast вообще не даст.
#477 #468406
Господа, вопрос: нужно читать поток чисел, класть в очередь и раздавать потокам на обработку. Каким образом это так сделать, чтобы с одной стороны очередь не ждала, пока все потоки отработают, с другой, потоки не ждали, пока в очереди что-то появится.
#478 #468409
Общий вопрос: для написания велосипеда матриц лучше брать за основу динамически масив или статический?
#479 #468410
>>468409
Небольшие матрицы лучше хранить в статическом, большие в стек не влезут.
#480 #468411
>>468410
Большие, на сколько большие?
#481 #468412
>>468406
Это классический producer consumers паттерн. Тысячи статей по это. Ещё называется "как накормить философов"
#482 #468414
>>468411
Чёткой границы нет, 8х8 или 16х16 – небольшие. Чтобы в стек влезало.
#483 #468415
>>468414
Ясно, спасибо.
sage #484 #468421
>>468313
Кастовать можно, использовать - нет, все зависит от ситуации.
#485 #468489
>>467478
До числа 2147483647 представление будет идентичным. Потом int пойдет в минус, станет -2147483648. А unsigned int пойдет дальше по положительным числам.
#486 #468538
Двачик, периодически я встречаю в коде куски, заключенные в фигурные скобки, но без операторов циклов или условий. Что это означает и как это работает? Просто отделение куска кода для удобства восприятия или что?
#487 #468539
>>468412
Подскажи, анон, какую реализацию стоит взять при высокой нагрузке, чтобы было потокобезопасно? С википузии (http://en.wikipedia.org/wiki/Producer%E2%80%93consumer_problem) мне больше всего нравится вариант с монитором, но там пугают race condition, чего не хочется.
#488 #468541
>>468414

> Чёткой границы нет, 8х8 или 16х16 – небольшие. Чтобы в стек влезало.


Чем подкреплено это ебаное утверждение? Чем обоссанные статические массивы лучше для хранения матриц? Почему матрица 17x16 "не влезает" в стек? И зачем её туда запихивать?
#489 #468542
>>468412
Или вот скажем местная реализация (https://juanchopanzacpp.wordpress.com/2013/02/26/concurrent-queue-c11/) -- она полностью адекватна проблеме, или есть какие-то подводные камни, которых я не вижу?
#490 #468543
>>468489
Кто сказал, что sizeof(int) == 4? Кто сказал, что именно таким образом реализован бит знака? Если в твоей путяге рассказали про прямой и обратный код, это ещё не значит, что других способов представления нет. Эксперты, блядь.
#491 #468544
>>468542

> есть какие-то подводные камни, которых я не вижу?


Навскидку: не раздавай числа по одному. Замерь время и сравни с теоретической производительностью, возможно. придётся брать другой вариант. Если количество чисел заранее известно, можно отказаться от синхронизации и выделить область памяти для каждого потока, например. Нужно больше знать про задачу.
#492 #468547
>>468544
Задача проста, но злоебуча. Из стандартного ввода поступают числа (например, пусть будет uint16_t). Они кладутся в очередь. При добавлении числа просыпается один из рабочих потоков (число которых жестко задано) и начинает делать с ним какую-то магию, не суть важно, но она может быть довольно длительной. Соответственно, завершив дело он засыпает. Когда числа перестают поступать потоки разбирают, что осталось, и выходят.

В принципе, если подумать, очередь вполне может ждать, пока один из потоков доработает, потому что иначе она может раздуться до диких размеров при большом количестве чисел (а значит, ее по-любому придется ограничивать).
#493 #468548
>>468547
Т.е. она ещё и в динамике работает? Может час числа не быть, потом придти одно, потом завтра миллион?
#494 #468549
>>468548
Нет, никакой динамики. Просто входящий поток. Но обсчет одного числа может идти довольно долго.
#495 #468551
>>468548
Алсо, возникает такой концептуальный вопрос: как на голом С++, без Qt и его сигнальной системы, составить грамотный алгоритм, который будет заполнять очередь, если она не полна, и выдавать задания любому потоку, как только он освободится, если есть свободные задания.

Я пока нашел такую схему:

while ( !pushNumber )
{
while ( !popNumber ) {}
}

где обе функции возвращают true, если удалось выполнить их назначение, иначе false. Но не могу оценить с ходу, насколько оно адекватно.
#496 #468552
>>468551
UPD: это вызывается при каждом новом прочитанном из потока числе. Собственно, поэтому возникают сомнения в отсутствии провисаний.
#497 #468555
>>468549
>>468551
>>468552
Ну давай буду мысли подкидывать. Треды явно надо собрать в пул, а входящие события обрабатывать асинхронно. Какой фреймворк это умеет, кроме буста?
#498 #468557
>>468555
Qt умеет, но в том-то и писечка, чтобы сделать на голом С++ с STL.
#499 #468558
>>468557
Ну тогда расчехляй std::async
#500 #468559
>>463076

>синтаксический сахар


>cpp


Да тебе в засмеялся-обосрался треды надо
#501 #468560
>>468558
А как будет выглядеть с ним контроль за числом потоков, например?
#502 #468561
>>468558
Вообще, было бы интересно посмотреть, как будут запускаться потоки и как с них будет сливаться инфа?
#503 #468563
>>468561
Мне лень читать прямо сейчас, чтобы разобраться, как оно работает в плюсах и тем более лень разъяснять тебе фундаментальные основы хрени. Попробуй погуглить, это действительно интересно, весьма не сложно, понравится твоему преподу.
sage #504 #468566
>>468538
Все что в скобках - скоуп. Во-первых, переменные, объявленные внутри скоупа, перестают быть видны вне его, то есть за скобками. Во-вторых, переменные, объявленные в скоупе на стеке, удаляются при выходе из него.
>>468557
Ясно. Не хотим использовать готовое, хотим велосипед, который будет в точности повторять то, что уже умные люди написали давно. Буст хоть возьми, долбоебушка.
>>468559
А тебе бы на хуй пройти надо, клован.
#505 #468567
>>468566
Слюшай, дарагой, я бы с радостью все это сделал на Кьюте за два часа, но я пилю тестовое на работку, так что там УСЛОВИЯ.
sage #506 #468570
>>468567
Рано тебе работать, если на сосаче дебильные вопросы задаешь.
36 Кб, 500x419
#507 #468573
>>468566

> Не хотим использовать готовое


Если это готовое — Qt, то не хотеть использовать эту парашу нормально.
#508 #468582
>>468543
И тут ты такой с примерами платформ и рантаймов с другим размером инта и другой реализацией отрицательных чисел.
Заебали такие эксперты.
Аноним #509 #468587
>>468582

>И тут ты такой с примерами платформ ... с другим размером инта


А вот и родившиеся в новом миллениуме начинают вкатываться.
#510 #468588
>>468570
Лучше бы не выебывался, а подсказал чего.
#511 #468589
>>468551
Сделать тоже что сделано в QT - коллбек.
#512 #468604
>>467140
А ЕСЛИ ТЫ НЕ МОЖЕШЬ КОНТРОЛИРОВАТЬ СВОЮ ЖОПУ, МММ, УЁБА?! КАК ТЫ ТОГДА ЕЁ ВЫТИРАТЬ СОБРАЛСЯ?!
#513 #468622
>>468604

> А ЕСЛИ ТЫ КРИВОРУКИЙ ДОЛБОБОБ, МММ, УЁБА?!


Тогда тебе в жабу, писали же уже выше.
sage #514 #468624
>>468573
>>468588

>Пок-пок-пок говно, нинужна, работа, кукарикууууууу! Памагити сделать лаба_2, ну плиииз! Нимагу панять что значит ; и зачем нужны фигурныи скобки(((((((


Ясно.
sage #515 #468626
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
Спамим своими лабами в новом тренделе: https://2ch.hk/pr/res/468625.html
#516 #468666
>>468587
Примеры давай, а не выебывайся, старпер. PDP 11 уже никого не интересует
#517 #468843
>>468582

>и рантаймов с другим размером инта


Я что-то путаю, или по сишному стандарту инт 16 бит? Да вообще вопрос не в этом, а знаковом бите и т.д.

Я так понял, представление от нуля до макс_инт не обязано совпадать с ансигнед.
#518 #468862
>>468843
В инте 32 бита. Старший из них делит диапазон значений инта пополам, так как занят под знак. Только по тому, что этот бит занят, использовать диапазон значений больший, чем позволяют 31 бит невозможно. 2 ^ 31 = 2147483648
По стандарту си похую сколько бит в инте так же как похую ему сколько бит в байте, он гарантирует правильность обращения с битами, а не их количество, которое задаётся архитектурой.
sage #519 #469383
>>468862

>В инте 32 бита.


Объебос, в инте столько бит, сколько необходимо для хранения чисел от -32767 до 32767. То есть минимум 16, а все остальное - платформозависемо. Гугли всякие ILP32.
#520 #469762
>>468862
Похуй.
Обновить тред
Двач.hk не отвечает.
Вы видите копию треда, сохраненную 25 мая 2015 года.

Скачать тред: только с превью, с превью и прикрепленными файлами.
Второй вариант может долго скачиваться. Файлы будут только в живых или недавно утонувших тредах. Подробнее

Если вам полезен архив М.Двача, пожертвуйте на оплату сервера.
« /pr/В начало тредаВеб-версияНастройки
/a//b//mu//s//vg/Все доски