LINUX.ORG.RU
Ответ на: А ты видел. от o2n3e

Помогу тебе, раз мозг у тебя уехал в отпуск: создай свою тему и иди срать туда.

false ★★★★★
()
Ответ на: Объясняю. от o2n3e

Хоть я и согласен с тобой по части унылости С++, но ты — упоротое чудище.

PolarFox ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

Да, а целочисленное переполнение unsigned типов - вообще сказка.

поверю, я еще в 64 бита нигде не упирался (кроме задач, где сразу брал gmp), кстати о Java - конечно и ты тоже не приведешь мне аналог такого кода:

#include <algorithm>
#include <fstream>
#include <vector>
using namespace std;

struct S
{
    S( int n, string s = "null" ) { n_ = n; s_=s; }

    int n_;
    string s_;
};

bool sort_n_dump(
    vector<S> v,
    bool      desc = false,
    string    path = "out.txt" )
{
    sort(
        v.begin(), v.end(),
        [desc](const S& a, const S& b) { return desc ? a.n_ > b.n_ : a.n_ < b.n_; } );

    ofstream f( path );
    for( auto it: v )
        f << it.n_ << '=' << it.s_ << '\n';

    return f;
}

int main() {
    sort_n_dump( { {1,"1"}, {3}, {2,"2"}, {4} } );
}

или приведешь? а то на словах тут ЯП расписывают - слюни текут, а на деле как-то все грустно и долго получается

wota ★★
()
Ответ на: комментарий от LongLiveUbuntu

Только вот.

Только вот, давай отвечай на посты, либо слейся. Твоих сливы ваще ниочем и неинтересны.

o2n3e
()
Ответ на: комментарий от LongLiveUbuntu

Что надо посчитать?

считать не надо, надо написать примитивную функцию, которая принимает массив из S, сортирует (в две стороны) и выплевывает в файл, направление сортировки и файл - опциональны, заодно желательно показать как в Java запишется строка:

sort_n_dump( { {1,"1"}, {3}, {2,"2"}, {4} } );
wota ★★
()
Ответ на: Потомучто. от o2n3e

The ceramics teacher announced on opening day that he was dividing the class into two groups. All those on the left side of the studio, he said, would be graded solely on the quantity of work they produced, all those on the right solely on its quality. His procedure was simple: on the final day of class he would bring in his bathroom scales and weigh the work of the “quantity” group: fifty pound of pots rated an “A”, forty pounds a “B”, and so on. Those being graded on “quality”, however, needed to produce only one pot -albeit a perfect one – to get an “A”. Well, came grading time and a curious fact emerged: the works of highest quality were all produced by the group being graded for quantity. It seems that while the “quantity” group was busily churning out piles of work – and learning from their mistakes – the “quality” group had sat theorizing about perfection, and in the end had little more to show for their efforts than grandiose theories and a pile of dead clay.

http://kk.org/cooltools/archives/000216

anonymous
()
Ответ на: Молодец. от o2n3e

и ты уже 3-й раз явно слился на дно

тебе это кажется. после твоих «аргументов» не вижу смысла тебе что-то доказывать или аргументировать. ты явно упорот, иди проспись.

nanoolinux ★★★★
()
Ответ на: комментарий от LongLiveUbuntu

небольшое дополнение - никаких «левых» исключений из функции вылетать не должно, файл должен быть закрыт сразу, функция возвращает результат - удалось ли записать данные, вдруг это было не очевидно из примера на С++

wota ★★
()
Ответ на: комментарий от LongLiveUbuntu

еще маленькое дополнение - оригинальный массив не должен меняться, опять же если не очевидно из кода на плюсах

wota ★★
()
Ответ на: комментарий от LongLiveUbuntu

Сейчас...

если тяжело - можно написать аналог еще более примитивной функции:

template<class T>
void swap ( T& a, T& b )
{
    T c(a); a=b; b=c;
}

тоже веселая задача для Java

wota ★★
()
Ответ на: Объясняю. ОПАСНО, МЕГОВЫСЕР от o2n3e

Так а кто тебе мешает написать и на плюсах свой контейнер, если тебе нужна специальная логика? Никто не мешает. Я писал на С++ для RT-систем. Отключал исключения, rtti. Не использовал stl. Писал свои специальные контейнеры, алгоритмы, аллокаторы. И все равно было удобнее, чем на С. Но я часто вижу в открытых проектах именно велосипеды. Совершенно обычный список, стек, очередь и пр. Вот это пугает.

Сейчас я вижу, что С используют только те, кто не осилил С++ или даже не пытался. Убедили себя, что ручной delete, unref, fclose и пр. - нормально. Что руками запиленный кривой велосипед для ООП, заставляющий писать тонны кода - это даже хорошо. Что коды возврата - ВСЕГДА лучше исключений. Что макросов вполне достаточно и шаблоны не нужны. Что неймспейсы - ересь и нужно просто херачить префиксы. И т.д. и т.п.

Просто религия. Хотя Страуструп специально делал язык так, чтобы ничего из средств не навязывать...

А то, что программисты идиоты - это не вина какого-либо языка. Сейчас и на питоне куча говнокода. И даже на Haskell стал попадаться...

anonymous
()
Ответ на: комментарий от anonymous

+100500

А паскаль то, а паскаль... уж казалось бы насколько строгий ЯП, и на том умудряются накуржопить так, что со стула падаешь...

AIv ★★★★★
()
Ответ на: комментарий от LongLiveUbuntu

http://pastebin.com/8rmHdYez

а) нет сохранения в произвольный файл
б) нет выбора направления сортировки - desc определяет направление сортировки, а не наоборот

wota ★★
()
Ответ на: комментарий от LongLiveUbuntu

S s = new S(5, «1 2 4 3 5»);
ArrayList<S> list = new ArrayList<>();
list.add(s);

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

wota ★★
()
Ответ на: комментарий от note173

Это задача не для Java.

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

wota ★★
()
Ответ на: комментарий от wota

хотя нет - я ошибся, как минимум две кривости Java

wota ★★
()
Ответ на: комментарий от wota

Обмен значений отдельной функцией в java смысла не имеет, именно потому, что невозможен.

Область применения языка всегда ограничена. С++ тоже этим страдает.

note173 ★★★★★
()
Ответ на: комментарий от note173

Обмен значений отдельной функцией в java смысла не имеет, именно потому, что невозможен.

да ладно, в гугле полно «решений»

Область применения языка всегда ограничена.

так это не область применения - это тривиальная задача, поменять A и B, даже на древних, очень древних ЯП прекрасно решаемая

wota ★★
()
Ответ на: комментарий от wota

то тривиальная задача, поменять A и B

T tmp = a; a = b; b = t;

В java много чего не хватает. Когда это становится критичным, берут scala или что-то еще более сложное.

note173 ★★★★★
()

Заглянул в тред, и меня залило жыром. Спасите, мил^Wмодераторы, заливают1!11

Т.С., напиши XMPP сервер на ASIO. Все равно больше ничего полезного в бусте нет :]

vasily_pupkin ★★★★★
()
Ответ на: комментарий от wota

да ладно, в гугле полно «решений»

Интересно взглянуть. Подозреваю, что обобщенный обмен ищут только студенты, на прошлом курсе написавшие калькулятор на с++ с шаблонами.

note173 ★★★★★
()
Ответ на: комментарий от note173

T tmp = a; a = b; b = tmp;

угу, и только для примитивных типов, можно сравнить с http://rosettacode.org/wiki/Generic_swap

обобщенный обмен

нет, ищут и его тоже, но примеры только для примитивных типов, тут согласен - бездумное использование generic swap вредно, хотя в случае с Java вроде как еще и невозможно

wota ★★
()
Ответ на: комментарий от note173

Нет, для любых.

только если ставить целью изменить два «указателя», а не реально поменять значения, почему это разные задачи думаю объяснять не надо

wota ★★
()
Ответ на: комментарий от anonymous

Заметь.

Давай поясню.

Так а кто тебе мешает написать и на плюсах свой контейнер, если тебе нужна специальная логика? Никто не мешает. Я писал на С++ для RT-систем. Отключал исключения, rtti. Не использовал stl. Писал свои специальные контейнеры, алгоритмы, аллокаторы.

Вот мне нужно запилить какой-то контейнер, но:

1) Мне лень думать и писать как-то обопщённо, ибо для каждого sizeof() свои тонкости, для каждой размерности контейнера свои тонкости. Мне лень пилить какой-то обопщённый аллокатор, ибо это глупо и я не вижу в этом с мысла*1.

2) Писать обобщённый алгоритм мне лень по тем же причинам, по которым мне лень писать обопщённые контейнеры. Мне лень думать о фигне, о том как бы сделать так, что бы моя текущая реализация не мешала юзать этот алгоритм на другие данные.

3) Писать аллокаторы в привычном С/С++ смысле этого слова - мне лень, и я не вижу в этом смысла.

И все равно было удобнее, чем на С.

Ок, но. Я начинал с плюсов, и верил в них(и до сих пор верю). На сях я случайно начал что-то писать, и пока я не встретил ни одного случая, где мне реально были бы нужны возможности плюсов. Плюсы нужно для обработки «непонятных» данных, но такие задачи встречаются нуочень редко и то по тупости задающих.

И я уже подумываю писать что-то на асм, ибо даже Си в некоторых вещах - пичаль.

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

Я же писал, мне лень городить/юзать шаблонный/«макросный» ад ради какой-то обопщённости, ибо я лучше запилю свой кастыль. И я уже писал, что почти всегда надо писать абёртки над этими «не кастылями», ибо почти всегда надо что-то ещё повесить на добавление/удаление.

Сейчас я вижу, что С используют только те, кто не осилил С++ или даже не пытался.

Плюсы на среднестатистическом уровне я осилил, почти все фичи и даже c++11, но мне больше нравится Си.

Убедили себя, что ручной delete, unref, fclose и пр. - нормально.

Делиты и стандартный и вообще любой манагер кучи на free(delete)/malloc(new) ущербен и я не вижу смысла его юзать, не вижу смысда удалять что-то и вообще в удалении. Особых проблем не вижу, ты же пишешь в своём деструкторе fclose()? Вот я написал его в кастыле один раз - и всё ок.

Что руками запиленный кривой велосипед для ООП, заставляющий писать тонны кода - это даже хорошо.

Да никому особо не нужен ООП, а уж писать кастыль для ООП и писать классы в плюсах по кол-ву текста прмерно одинаковы.

Что коды возврата - ВСЕГДА лучше исключений.

В 99.(9)% случаев это так. Что тебе мешает запилить исключения на Си? Это наглядней и красивше, чем ущербность на плюсах. Мне ещё никто не привёл пример СИТУАЦИИ, ГДЕ ДЕЙСТВИТЕЛЬНО БЕЗ ИСКЛЮЧЕНИЙ НЕ ОБОЙТИСЬ, даже хрен с ним «не обойтись». Опиши мне ситуацию в которой исключения были бы ХОТЯБ красивше чтоли, чем велосипед на сях.

Что макросов вполне достаточно и шаблоны не нужны.

Шаблоны нужны, но их применение такое же туманное как и у исключений. Мне так же ещё никто не привел пример того, как шаблоны делали бы что-то нужно(абобщённые контейнеры невсчёт, ибо они не нужны, неосиляторов void(*f)(void) тоже прошу не беспокоить).

Что неймспейсы - ересь и нужно просто херачить префиксы. И т.д. и т.п.

Неймспейс тот же префикс. Юзай то, что нравится тебе. Если ты не пишешь говнокод, и твой язык позволяет(сюда не входят все скриптовые языки, жаба, решотки, породии на языки, языки с gc, языки с ООП головного мозга, языки с ФМГ, понтовость которых настолько крута, что они тормазят так, что ёпрст пхп не снилось, это всякие там лиспы, ерланги и иные jit и vm сущности) писать не говнокод - ты прав и крут, я с тобой не спорю.

Просто религия. Хотя Страуструп специально делал язык так, чтобы ничего из средств не навязывать...

Это не отменяет действительность, авось создатели явы тоже хотели мира во всём мире, но породили говно и садомию. Страуструп молодец, но тенденция не ув.

А то, что программисты идиоты - это не вина какого-либо языка. Сейчас и на питоне куча говнокода. И даже на Haskell стал попадаться...

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

Вместо того, что бы учить людей юзать привильно кучу - им дают gc и нахваливают его, дают счётчики ссылок, всякие аутоптр"ы и прочую байду. Это пичально.

Люди вместо того, что думать о lock(wail)-free - не думают, и просто тупо тыкают всякие мютексы везде и всюду. Такая же ситуация с алокаторами в С++, ибо они тормазят так, что дайдороги. И вместо того, что бы юзать какие-то кольцевые пулы - в программе просто сотни-тысячи-милионы раз мрут на стеке целые классы и тянут за собой free. Это тянет за собой тонны проблем, начиная от тех же тормазов, заканчивая адской фрагментацией памяти и мы имеет такое говно, как браузеры и прочую фигню.

Тут сказывает и фанатичная, никому не нужная кроссплатформенность языка. Кроссплатформенность алокаторов - фуфло, стандарт - фуфло. бост-асио говно, любая кросплатформенная не прикладуха - говно. Любой хайлоад на проприетарщине - говно. Удел проприетарщины - это прикладуха. Кроссплатформенность только для прикладухи. Тормазящие, никому не нужные станадрты - говно, боязнь не совместимость - говно. Боязнь велосипедов - говно. Универсальность - говно. Следование одной парадигме и т.п. - говно.

Я уже начинаю бредить, но думаю на вопросы яответил.

o2n3e
()
Ответ на: комментарий от wota

Конкретно в этой форме, когда происходит обмен между локальными переменными, это не имеет значения. Похожим образом можно работать и с полями, и с элементами массивов. Единого способа доступа к ним в java просто нет.

note173 ★★★★★
()
Ответ на: Заметь. от o2n3e

Ну опять ты приводишь пример с идиотами... Если кто-то херачит мьютексы налево и направо, это не значит, что мультитредность вредна, правда? И так во всем.

По поводу «необходимости». Если мне действительно понадобиться подсчет ссылок, то я не хочу писать руками какой-нибудь unref - пусть за меня это делает деструктор. Если мой код явно может работать с несколькими типами и это будет полезно - я поставлю template. И т.д. Это не необходимость, но удобство.

Это все та же лень, о которой ты говоришь. Мне лень писать то, что легко может быть автоматизировано средствами языка. При этом я точно знаю, что происходит... Те же деструкторы возьмем. Мне нет необходимости вставлять вызовы fclose или какую-то другую хрень по закрытию ресурса, когда у меня есть владелец этого самого ресурса и я точно знаю, когда он этот ресурс освободит.

anonymous
()
Ответ на: комментарий от anonymous

Да я согласен.

Мои примеры - это обратная сторона С++. Ясчитаю, что люди ещё не готовы к С++, ибо бурное погружение в абстракции без желания их понять делают просто убийственную вещь - это меня и пичалит.

Да я согласен на все 95%, нормальный человек даже на яве может еле-еле, но кое как норм. писать. Stl, стандарт пилят для человеков, которые юзают его и тенденция его развития мне не нравится. Это больше относится к готовому коду - он мне не нравится, но как я уже говорил - против языка я не имею никаких притензий, ибо он меня никчему не обязывает.

Хорошо, хорошо. Делай как хочешь, я уже 10раз писал, что я не против нормального(нужного) использования фич С++. Всё моё нытьё вызванно только основной массой С++ программистов и тенденцией развития языка.

o2n3e
()
Ответ на: комментарий от anonymous

Молодец.

Эта простыня ниочем мне не говорит, ибо:

а) Естесственно если ты возмёшь 2 жабиста и скажешь им писать «качественно» и быстро, то на выходе выйдет жабист-шизик, ибо жава по определению не даёт писать качественно и он успееет только о gc прочитать за то время, пока второй запилит что-то.

б) Надо брать определённых людей, не ограничивать их 5-ю минутами, но такие «эксперементы» никто не ставит и то, что ты мне дал - является говном.

в) Твой линк абсалютно повторяет мои слова:

Дядя Егор пошел читать мануалы про обрабоку древесины, рисовать какие-то ненужные чертежи, подбирать метизы и т.п. Дядя Ваня за это время уже сколотил 50скворешников универсальными гвоздями 5х150, кривые-косые и т.п.

Да, пока дядя Егор думал - дядя Ваня делал. Изначально так и будет, ибо все силы уйдут на изучения материалов, понимание(выбор оптимальных оборотов, техники и т.п.) и т.п.

г) Людей надо отбирать не тяп-ляп, а по их развитию. Ибо мой пример учитывает желание дяди Егора в понимании, а дяди Вани в не желание разбираться.

Пример мой показывал: Желание разобраться и понять приводит к большим результатам, чем желание лепить и не желание понимать. Кол-во скворешников - это уже последствия.

И да, твой пруф какраз такие показывает оптимальное мышление для конвейерной работы, ибо ты должен быть не творцом, а исполнителем. Естественно блин, что Пушкин написал трудов за всю жизнь меньше, чем школьник исписал тетрадок, но... Аналогия понятна?

o2n3e
()
Ответ на: Молодец. от o2n3e

Началось: и люди должны быть специально подобранные, и работа должна быть какая-то особая. Гончарное дело - конвеер, ага.

Пример мой показывал

Не было примера, был догмат в духе «Вотящитаю, так будет». Показывай примеры из жизни, или нифига не будет. С голыми же догматами и словоблудием можешь проследовать в семинарию, там как раз такие специалисты нужны.

Пушкин написал трудов за всю жизнь меньше, чем школьник исписал тетрадок,

Ты или полное собрание сочинений Пушкина, включая письма, никогда не видел, или под дурака косишь. Возможно и то, и другое. Хинт: в печатном виде мелким шрифтом оно небольшой шкаф занимает. Ну а то, что писем и прочей лабуды больше, чем «полезного» выхлопа, как раз показывает, что мастерство на больших объемах оттачивается. А не на маниловщине.

anonymous
()
Ответ на: Окай. от o2n3e

мне не интересны, они смешны и сливаются на раз. Играйся в песочнице - удачи тебе в развитии.

Смешны стандартные ответы д'Артаньянов :)

slackwarrior ★★★★★
()
Ответ на: А уж если. от o2n3e

А уж если я напишу

А что мешает? Очки запотели?

slackwarrior ★★★★★
()
Ответ на: Молодец. от o2n3e

Ты не в Пушкины смотри, а в Наполеоны. Вернее будет. У вас в палате не один ты такой умный :)

slackwarrior ★★★★★
()

клиент<->сервер на asio

comp00 ★★★★
()
Ответ на: комментарий от slackwarrior

Только вот.

Аргументы кончились? Зачем отвечать? Зачем отвечать на все тезисы? Зачем? Можно же проигнорировать 95% поста и ответить на 3слова, - «с дартаньяном не дружу» - это такой аргумент, прям нуаще. Вобщем молодец, показал себя прям со все красы.

o2n3e
()
Ответ на: комментарий от slackwarrior

Только вот.

Ты даже на эти дампы не можешь аргументированно ответить. Ну да, ты молодец, ибо я не умею «литературно» писать что-то с высоким кпд. Мои «дампы» потока «сознания», даже самые маленькие состоят из простыни на экран, а уж мои попытки обличить это в «литературную» форму доходят до 10-20секундного скролла простыни. Поэтому я, ценя твоё время так пишу, ну и мне конечно же лень о бличать это в какую-то форму.

Мои тезисы просто, четко и конкретно сформулированы. Они без 2-го дна, незавуалированны, без каких-то даже намёков на явные/не явные сливы. Но даже на это вы не можете нормально, аргументированно ответить. Либо один ответ и потом мочок, либо просто явный слив, аля «ты дурак», что пичалит.

o2n3e
()
Ответ на: Только вот. от o2n3e

Дампы не нуждаются в ответах, потому что не содержат вопросов - в этих твоих «простынях на экран» - в основном дыхота с низким соотношением «сигнал-шум». Особенно про сливы очень показательно :) Размер пинуса беспокоит?

slackwarrior ★★★★★
()
Ответ на: комментарий от slackwarrior

Только вот.

Там были конкретные предположения с вопросами, конкретно:

Если ты не писал стл, то зачем ты воняешь? Ты не привел ни одного аргумента.

Кому интересна твоя вера в мистические «гарантии», которые ты никак не можешь подтвердить(объективно)? У стл гарантий не больше, чем у кастыля, который написал бухой дядя Ваня, ибо если ты упорот и криволап у тебя что-то упадёт в любом случае, и будь-то жава, пхп, плюсы, либо Си. Вера в «грантии», «безопасность» некоторых ЯП и либ - это банальная религия, адепты которой имеют 0 аргументов и 100 уверенности в предмете поклонения.

Ты не первый и не последний сливер, ты не отвечаешь на заданные тебе вопросы, но пишешь ответ, зачем? - раз. Ты уходишь от прямого ответа - два. Ты меняешь темы и юлишь - три. Ты пытаешься выехать на обвинения оппонента в «тупизме», неспособности поставить нормально вопрос и т.п. Давая какбэ понять, что ты не обязан отвечать на бред, но на самом деле...

Да давай даже предположим, что я идиот, все мои посты - бред и т.п. Как ты себя ведёшь? Вместо того чтобы попытаться понять оппонента, попытаться указатель ему на путь истинный своими железными аргумента - ты делаешь то, о чем я писал выше. Это происходит по 2-м причинам: Ты просто затычка(просто отвечаешь, но на саму тему тебе похрен(а возможно ты не шаришь), суть твоих постов сводится к «наваять партянку», а не вести дискуссию, «помогать» и т.п.), либо тебе похрен на оппонента и ты считаешь себя отцом вселенной, а своё мнение идеалом, что не является признаком, а вернее является призного глупости.

Т.е. в обоих случаях ты не выглядишь лучше, чем даже тот, кто пишит с «низким соотношением сигнал-шум». Выглядит лучше только тот, кто реально отвечает и пытается аргументировать свой выхлоп. Конкретно за тобой я этого не вижу, как и почти за всеми в этой теме.

o2n3e
()
Ответ на: Только вот. от o2n3e

[s]So what?[/s]Только что?

Воняешь здесь ты.

ты не обязан отвечать на бред

А что, обязан? :)

Да давай даже предположим, что я идиот, все мои посты - бред и т.п. Как ты себя ведёшь? Вместо того чтобы попытаться понять оппонента

Пытаться понять идиота? Я не психиатор. (Это даже в рамках такого предположения - ВП)

как и почти за всеми в этой теме.

Darth Agnan is so Darth Agnan :)

slackwarrior ★★★★★
()
Последнее исправление: slackwarrior (всего исправлений: 1)
Ответ на: [s]So what?[/s]Только что? от slackwarrior

Да понял я, понял.

Ты о5 беспантова слил. Ты ответил на бред, зачем? Вы миня настолько пичалите, что я себе facepalmom лицо нахрен скоро разобью. Давай двигай в толксы и там вещай, а сюда, коли дней дна нелезь. Хотя яж тебе не указ, нудаладно, вещай тут.

Булькай чаще, грузись глубже.

o2n3e
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.