Size: a a a

2020 July 21

D

Dmitriy in supapro.cxx
illya palkin
А мне вот интересно как они получают эти элементы
В смысле "как"?
В узле есть 3 указателя - left, right, parent...
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Artöm Bakri Al-Sarmini
Средняя сложность вставки в конец вектора не O(1)
А какая?
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Амортизированная константная
источник

ip

illya palkin in supapro.cxx
Dmitriy
В смысле "как"?
В узле есть 3 указателя - left, right, parent...
То есть просто идут в лефт, потом райт и тд ?
источник

ip

illya palkin in supapro.cxx
как в bfs ?
источник

D

Dmitriy in supapro.cxx
illya palkin
То есть просто идут в лефт, потом райт и тд ?
Да. Обходят все элементы дерева слева направо
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
Рвзница в том, что амортизирлванная константа это константа, если выкинуть краевые случаи
источник

ip

illya palkin in supapro.cxx
Dmitriy
Да. Обходят все элементы дерева слева направо
А что там именно под капотом dfs или bfs ?
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Artöm Bakri Al-Sarmini
Рвзница в том, что амортизирлванная константа это константа, если выкинуть краевые случаи
А среднее время?
источник

t

tamtakoe in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
std::set<std::string> ids;
   std::for_each(items.begin(), items.end(), [&](auto &&el) {
           if (el.first == "items")
               std::visit([&] (auto &&variant_val) {
                   if constexpr(std::is_same_v<decltype(variant_val), std::string>)
                   ids.insert(variant_val);
               }, el.second);
   });
Ну короче теперь даже компилит
Это поиск уникальных элементов? Для меня там наибольшее затруднение это привести элементы к нужному выходному формату, избежав при этом паразитных копирований и других тяжелых операций
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
illya palkin
std::find() (который из algorithm) работает за O(n) для любого контейнера (увидел в видео). И вот вопрос как он std::set/std::map за O(n) проходит ? Там же RB tree под капотом, разве итераторы и их инкремент/декремент не должен "по правилам" binary search tree происходить ?

Да и вообще интересно, а вот инкремент / std::next такого итератора что означает ? std::set же не contiguous контейнер, как он знает откуда значение следущее брать ? Если он получает эту инфу от контейнера, то почему std::find() не сработает за O(logn) ?
> работает за O(n)
В стандарте этого нет
источник

AB

Artöm Bakri Al-Sarmi... in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
А среднее время?
Я не силен в мотемотике
источник

ПК

Побитый Кирпич... in supapro.cxx
Danya
Знатоки VS хелп
Я с тем же вопросом: почему может не работать автодополнение в хедере?
Работает автодополнение инклюдов, но символы из этих инклюдов не подтягиваются
Стандартный workaround -
1) Перезапустить студию
2) (при выключенной студии) Отчистить БД интеллисенс - самый простой вариант - удалить все папки который генерит студия, обычно это .vs только. Также удалить все папки с билдами лучше
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
tamtakoe
Это поиск уникальных элементов? Для меня там наибольшее затруднение это привести элементы к нужному выходному формату, избежав при этом паразитных копирований и других тяжелых операций
Там нет копирований. Только добавляются значения в сет
источник

t

tamtakoe in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
std::set<std::string> ids;
   std::for_each(items.begin(), items.end(), [&](auto &&el) {
           if (el.first == "items")
               std::visit([&] (auto &&variant_val) {
                   if constexpr(std::is_same_v<decltype(variant_val), std::string>)
                   ids.insert(variant_val);
               }, el.second);
   });
Ну короче теперь даже компилит
Но, вообще, интересно будет сравнить что быстрее и насколько)
источник

t

tamtakoe in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
Там нет копирований. Только добавляются значения в сет
Это там нет, а если брать весь алгоритм, то пришлось заморочиться со ссылками и указателями, чтобы не было копирований и утечек. Хотя, для людей, годами работающих на плюсах это, наверное, фигня)
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
tamtakoe
Это там нет, а если брать весь алгоритм, то пришлось заморочиться со ссылками и указателями, чтобы не было копирований и утечек. Хотя, для людей, годами работающих на плюсах это, наверное, фигня)
Там в любом случае будут затраты на аккумуляцию, но я не знаю насколько затраты на копирования важны
источник

t

tamtakoe in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
Там в любом случае будут затраты на аккумуляцию, но я не знаю насколько затраты на копирования важны
Ну... Примерно 10000 раз будет копироваться мапа из 20 полей. Для JS это было тяжело
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
std::set<std::string> ids;
   std::for_each(items.begin(), items.end(), [&](auto &&el) {
           if (el.first == "items")
               std::visit([&] (auto &&variant_val) {
                   if constexpr(std::is_same_v<decltype(variant_val), std::string>)
                   ids.insert(variant_val);
               }, el.second);
   });
Ну короче теперь даже компилит
Ну вообще я тут подумал, что можно и за один проход в принципе сгруппировать все, но нужно немного с мапами извратиться
источник

s

std::slavik in supapro.cxx
tamtakoe
Ну... Примерно 10000 раз будет копироваться мапа из 20 полей. Для JS это было тяжело
а зачем
источник