gns_ua: (Default)
[personal profile] gns_ua
Бля, вот как можно таким мудаком быть-то?

class Device : public QObject
{
....
Device* parent;
QString deviceUdi;
QString parentUdiString;
....
}

Это засунуть в QList.

Нужно понимать, что Device однозначно идентифицируется своим UDI и бОльшая часть действий начинается с поиска объекта по UDI.

А потом написать вот такой WTF по связыванию детей с родителями при инициализации:

foreach (Device *device,storageDevices())
foreach (Device *parentDevice,storageDevices())
if (parentDevice->udi() == device->parentUdi()) {
device->setParent(parentDevice);
break;
}
std::cerr << "[E] Parents done\n";


Пиздец, O(n^2). Нахуя вообще Device* parent, если он избыточен и вполне достаточно знать QString parentUdiString ? А вот зачем: чтобы когда понадобиться полезть к родителю, можно было просто сходить по указателю, вместо вызова ещё одного WTF:

Device *Hal::findDevice(const QString &deviceUdi) {
foreach (Device* device,storageDevicesList)
if (device->udi() == deviceUdi)
return device;
return 0;
}


Блядь, ну для чего-то же существует QHash, ну какого хуя в 21 веке делать тупорылый поиск? И нахуя Device делать объектом, если на самом деле хватает typedef struct?

Интересно, чего я такого покурил когда два года назад писал эту поебень?
(deleted comment)

2010-08-19 14:27 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
Паскаль лишь немногим лучше. Да, после бейсика я читал книжки про паскаль и модулу2. Там я открыл для себя линкед листы и деревья, но там нифига не рассказывали, что из них на самом деле можно делать :(

2010-08-19 16:26 (UTC)
- Posted by [identity profile] v-l-a-d.livejournal.com
Ну а какой смысл писать про хэш-таблицы или красно-черные деревья в книге по языку программирования?

Помню, в любой старой книжке по Паскалю обязательно показывалось, как реализовывать linked lists, стек и очередь - уже и на этом спасибо)

2010-08-20 07:39 (UTC)
- Posted by [identity profile] gns-ua.livejournal.com
А книжек по программированию-то и не было. Была у меня в децтве советско-ВУЗовская книжка "Программирование", но в ней были разделы про PL/1, Алгол и Фортран, и немножко бесполезной теории про машины тьюринга, цепи Маркова и их эквивалентность. Ничего про оценку сложности алгоритмов, ничего про структуры данных.

Короче компухтер сайнс образца 1950, и это в книжке 1981 года!

Profile

gns_ua: (Default)
gns_ua

April 2017

M T W T F S S
     12
3456789
10111213141516
17181920212223
24252627282930

Expand Cut Tags

No cut tags