Size: a a a

IT KPI C/C++ ХВ (не UB)

2020 July 21

A

András in IT KPI C/C++ ХВ (не UB)
не більше
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
поетому вектор будет быстрее
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
András
воно мені дасть приріст швидкості в 200 разів
Так нормально
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
а сет замедлит
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
ну как хочешь, чево я вообще лезу
источник

AN

Anatoly Novikov in IT KPI C/C++ ХВ (не UB)
Один контейнер, чтобы управлять всеми.
источник

A

András in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
поетому вектор будет быстрее
що швидше, 1000000/200==5000(вектор), чи лн(1000000)==20(сет)?
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
András
що швидше, 1000000/200==5000(вектор), чи лн(1000000)==20(сет)?
не понял что тут написано
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
На cppreference тоже писали, что в std::unordered_set поиск константный
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
Только как они это реализовали
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
так это ж хеш таблица
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
через хеш
источник

A

András in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
не понял что тут написано
ну, я ж отримую за рахунок кешу приріст швидкості не більше ніж в 200 разів. Відповідно якщо в мене 1 000 000 елементів, то в гіршому випадку пошук елемента буде за лінію / 200(ну або в сеті треба *200, але я пояснюю свій приклад), що рівне 5000
В сеті доступ до елементів за логарифм без оптимізацій через кеш, тобтом лн(1 000 000)==20
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
так это ж хеш таблица
Выходит тогда его лучше использовать
источник

YS

Yevhen Salatskiy in IT KPI C/C++ ХВ (не UB)
Yevhen Salatskiy
unordered set
.
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
András
ну, я ж отримую за рахунок кешу приріст швидкості не більше ніж в 200 разів. Відповідно якщо в мене 1 000 000 елементів, то в гіршому випадку пошук елемента буде за лінію / 200(ну або в сеті треба *200, але я пояснюю свій приклад), що рівне 5000
В сеті доступ до елементів за логарифм без оптимізацій через кеш, тобтом лн(1 000 000)==20
не понимаю что ты считаешь
ты думаешь что можешь вот так просто взять и посчитать на бумажке какое будет время?
там же куча оптимизаций внутри и все на то чтоб линейно с памятью работать быстрее
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
пока ты будешь ждать загрузку кеша для сета, для вектора эти загрузки скорее всего будут нивелированы спекулятивным исполнением
источник

RN

Ruslan Neshta in IT KPI C/C++ ХВ (не UB)
можешь сделать тест если тебе не все равно конечно
источник

A

András in IT KPI C/C++ ХВ (не UB)
Ruslan Neshta
не понимаю что ты считаешь
ты думаешь что можешь вот так просто взять и посчитать на бумажке какое будет время?
там же куча оптимизаций внутри и все на то чтоб линейно с памятью работать быстрее
та ну не може воно так добре оптимізувати, щоб при числах > 10**5 лінія обганяла логарифм
источник