Школоло / Говнокод #17759 Ссылка на оригинал

0

  1. 1
  2. 2
SetLength(kokoko, Length(kokoko)+1);
kokoko[Length(kokoko)-1] := Something;

БЕСИТ

Запостил: TarasB TarasB, (Updated )

Комментарии (70) RSS

  • > Length(kokoko)-1
    и правда, печаль, если приходится переключаться между разными нумерециями (C/Pascal) и кэшированностью.
    // без кэширования, сишные нулевые нумереции:
    SetLength(k, Length(k)+1); k[Length(k)-1] := S;
    // без кэширования, паскальные единичные нумереции:
    SetLength(k, Length(k)+1); k[Length(k)] := S;
    // с кэшированием, нулевые нумереции:
    SetLength(k, L); k[L] := S;
    // с кэшированием, единичные нумереции:
    SetLength(k, L); k[L+1] := S;
    // в крестах/JS:
    k.push_back(S); // и мы счастливы
    Ответить
  • Что это за брехня? Бля, Тарас, ты паскалист - так и будь паскалистом! Скатился до уровня банального крестушка, я дрочу от обиды.
    Ответить
    • > Скатился до уровня банального крестушка
      Скатился до уровня банального сишника
      Ответить
      • Долджно быть, это ты его к этому склонил... [u]Нельзя соблазнять натуралов.[/b]
        Ответить
        • Если натурала можно склонить, значит такой он натурал.
          Ответить
  • Замечательный код, кстати. Лагает шопиздец из-за полного реаллока на каждый чих. А до вектора с джвумя размерами (allocated, used), который растягивается пореже, пасцалята не додумались.
    Ответить
    • Кстати, нет, не на каждый. Там вроде всё равно амортизированное O(N) выйдет если N элементов занести. Хотя когда скорость нужна, лучше вручную резервировать.
      Вообще код о том, какой чугунный синтаксис у массивов, нет даже блять простого PushBack.
      Ответить
      • > не на каждый
        Ты уверен? Вроде у этих массивов нету второго размера. Так что на каждый. И выйдет O(N^2), если заранее размер не знать и самому нигде не хранить второе число.
        Ответить
        • Аллокатор по любому хранит. Допустим тебе задали ресайз на 9 элементов, ты заказываешь у аллокатора на 16, в итоге вектор помнит 9, аллокатор 16. А дальше при реаллокации на 10 элементов, сам понимаешь, делается одна проверка чтоб ничего не делать.
          Но я не уверен, что там так и есть. В одном проекте у меня были нехреновые тормоза именно из-за добавления по одному элементу, и я убрал их именно ручным дополнением до степени двойки. И да, там было много тысяч элементов.
          Ответить
  • Похоже на гк бывшего сишника, которому дали проект на паскале. Хорошо ещё директив компилятора не накидал сюда.
    Ответить
  • if TSA[2].S[Length(TSA[2].S)] = ',' then SetLength(TSA[2].S, Length(TSA[2].S)-1);

    бля
    Ответить
    • И что тебя смущает генетически Сишник?
      п.с. Согласен в квадратные скобки нужно писать High(TSA[2].S) , но это лирика.
      Лучше скажи сколько парашекода нужно намаструбировать чтобы создать простейший "резиновый массив" на быдлоС++
      В любой момент получить его размер, увеличить, уменьшить, и так далее?
      Ответить
  • Через 12 секунд ниже в этом треде отпишется хохляцкий бомж Сёма.
    Ответить
  • Через 10 секунд ниже в этом треде отпишется уёбок с порванным ачьком.
    Ответить
    • даже если нет - напиши свой. У нас это была одна из первых лаб - односвязный и двусвязный список
      Ответить
      • Ты понимаешь, блядь, разницу между лабой и реальным программированием?
        Ответить
        • Блядь,если я, будучи первокурсником, который писал только на квикбейсике как то сумел сделать списки на делфи, то уж ты, взрослый программист на своем хуетоне, сможешь написать такую коллекцию, которая тебе нужна, блядь!
          Ответить

Добавить комментарий

Семь раз отмерь — один отрежь, guest!

    А не использовать ли нам bbcode?


    8