LINUX.ORG.RU

> финских икт кругах используются какие то другие названия
sanakirja?

CYB3R ★★★★★ ()

std::map - самый что ни на есть канонический, на красно-чёрных деревьях, каноничнее не надо

а в Qt контейнеры «норкоманские», за исключением кошерного QString, впрочем

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

Если надо быстро искать по ключу - то QHash (хэш-таблица)

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

shty ★★★★★ ()
Ответ на: just curious от seed_stil

>а в Qt контейнеры «норкоманские»

поподробнее?

да одно CoW чего стоит, или реализация QList

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

Вроде ничего особо норкоманского, кроме того, что QList не совсем тот список, о котором думают.

QMap, ЕМНИП, совсем не каноничный, правда предсказуемый

и там проблема даже не в конкретных контейнерах, а в том что общее ощущение от контейнеров странное

shty ★★★★★ ()

А про какие словари речь? Если структура данных - в треде уже ответили. Если же словарь как тип программного обеспечения - QStarDict.

TheKnight ★★★ ()

Какого рода словарь? Какого рода информацию надо в них хранить (в смысле есть ли сходные строки и.т.п.)?

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

> O(1) не должно смущать ибо это O, сам хэш считается довольно долго

ощущение от контейнеров странное

сразу видно профессионала

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

CoW - это же хорошо. То, что QList не соответствует названию - ну ладно, все вроде привыкли.

Но вот от того, что QSet нельзя проинициализировать двумя итераторами, я долго кирпичи изготовлял.

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

ну хоть хорошо что не с двумя «ф» :)

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

А что в QList такого?

да всё тип-топ, только QList в Qt реализован через массив

нет, так в принципе можно делать, но вот это блин нифига не очевидно, берёшь к примеру ты список и потом нечаянно узнаёшь что оказывается в нём стоимость вставки элемента не O(1)

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

>берёшь к примеру ты список и потом нечаянно узнаёшь что оказывается в нём стоимость вставки элемента не O(1)

А в связанном списке стоимость вставки куда нибудь в центр - О(1), типа?

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

>нет, так в принципе можно делать, но вот это блин нифига не очевидно, берёшь к примеру ты список и потом нечаянно узнаёшь что оказывается в нём стоимость вставки элемента не O(1)

В доументации это все описано и сказано использовать для таких случаев QLinkedList.

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

> есть даже в gcc-шном libstdc++.

да, только ЕМНИП не в STL, а в strings

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

>берёшь к примеру ты список и потом нечаянно узнаёшь что оказывается в нём стоимость вставки элемента не O(1)

А в связанном списке стоимость вставки куда нибудь в центр - О(1), типа?

да, а что?

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

>нет, так в принципе можно делать, но вот это блин нифига не очевидно, берёшь к примеру ты список и потом нечаянно узнаёшь что оказывается в нём стоимость вставки элемента не O(1)

В доументации это все описано и сказано использовать для таких случаев QLinkedList.

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

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

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

Да CoW (может быть более примитивный чем в Qt, не проверял) есть даже в gcc-шном libstdc++.

ну есть, и что?

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

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

Почему люди так любят делать дурацкие аналогии с машинами?

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

Я не говорю, что ты дурак, я говорю, что нельзя считать что-то наркоманским только потому, что это не вписывается в твое привычное. Реализации списков часто оптимизируют, храня вместо ячеек данных ячейки с массивами данных. И это всегда задокументировано. Вставка/удаление чуть-чуть страдает, зато в остальном только плюсы.

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

>ну есть, и что?

То, что CoW почти повсеместно. Хочешь особенную не-CoW структуру, найди/напиши и пользуйся.

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

>да, а что?

А с головы списка до середины отсчитать, чтобы вставить - це ж сколько итераций надо проделать.

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

Почему люди так любят делать дурацкие аналогии с машинами?

1. не дурацкие
2. я, простите, не в курсе Вашего жизненного опыта, поэтому привёл общедоступный пример

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

>ну открой классический stl и найди тогда

Классические реализации классических алгоритмов делаются на первом-втором курсах университета.

staseg ★★★★★ ()

Что за глупый срач, посритесь лучше на тему QHash vs QMap, хоть толк будет.

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

>ну открой классический stl и найди тогда

Классические реализации классических алгоритмов делаются на первом-втором курсах университета.

ты сейчас про что?

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

Документацию читать надо.

#define true false

и счастливой отладки

// плохая отмазка

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

а ты простенький бенчмарк напиши и сам всё увидишь

shty ★★★★★ ()

всем спасибо QMultiHash подошел.

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