Size: a a a

2020 July 28

/

/bin/cat in supapro.cxx
unordered_map<size_t, vector<weak_ptr<T>>>
источник

P

Prong in supapro.cxx
Это и есть хеш
источник

P

Prong in supapro.cxx
Вычисления хеша и доступ к элементу по этому хешу это разные вещи. В доступе к элементу скорость вычисления хеша не учитываться
источник

P

Prong in supapro.cxx
Если у тебя идеальная хеш функция (на каждый ключ будет уникальный хеш), то что бы получить элемент тебе нужно рассчитать хеш для ключа и перейти по нужному индексу - это константа (если хеш функция вычисляется за константу)
источник

a

anton in supapro.cxx
Добрый вечер! Подскажите, произойдет ли в данном случае копирование объектов A и B:
#include <vector>
#include <iostream>

int main() {
 std::vector<int> A {1, 2, 3};
 std::vector<int> B {4, 5};
 for (auto &R : {A, B})
   for (const int &n : R)
     std::cout << n << '\n';
 return 0;
}
источник

/

/bin/cat in supapro.cxx
Prong
Если у тебя идеальная хеш функция (на каждый ключ будет уникальный хеш), то что бы получить элемент тебе нужно рассчитать хеш для ключа и перейти по нужному индексу - это константа (если хеш функция вычисляется за константу)
unordered_map хранит buckets же
источник

/

/bin/cat in supapro.cxx
Можно использовать и вектор с миллионом элементов
источник

DP

Denis Paukaev in supapro.cxx
anton
Добрый вечер! Подскажите, произойдет ли в данном случае копирование объектов A и B:
#include <vector>
#include <iostream>

int main() {
 std::vector<int> A {1, 2, 3};
 std::vector<int> B {4, 5};
 for (auto &R : {A, B})
   for (const int &n : R)
     std::cout << n << '\n';
 return 0;
}
произойдёт
источник

a

anton in supapro.cxx
Denis Paukaev
произойдёт
а как можно избежать этого?
источник

P

Prong in supapro.cxx
/bin/cat
unordered_map хранит buckets же
Если у тебя идеальная хеш функция то тебе не нужны бакеты (если я правильно понимаю что они делают), так как у тебя нет коллизий
источник

/

/bin/cat in supapro.cxx
хм, только такой вопрос
источник

/

/bin/cat in supapro.cxx
unordered map делает мув?
источник

DP

Denis Paukaev in supapro.cxx
anton
а как можно избежать этого?
for (auto R : {&A, &B}) {
источник

/

/bin/cat in supapro.cxx
Мув не проблема, если увеличить размер в два раза, чтобы в следующий раз его избежать
источник

P

Prong in supapro.cxx
/bin/cat
unordered map делает мув?
Если для элементов при переаллокаци - то да
источник

a

anton in supapro.cxx
Denis Paukaev
for (auto R : {&A, &B}) {
а, то есть через указатели, ок, спасибо
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Denis Paukaev
for (auto R : {&A, &B}) {
А почему это вообще работает 🤔
источник

D

Danya in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
А почему это вообще работает 🤔
Потому что создаётся последовательность из указателей на вектора
источник

🎄T

🎄🎊 R 🎅 Tb| ✡️ 🎊🎄... in supapro.cxx
Danya
Потому что создаётся последовательность из указателей на вектора
Я про то что откуда компилятор знает как шагать по brace-initializer листу
источник

D

Danya in supapro.cxx
🎄🎊 R 🎅 Tb| ✡️ 🎊🎄
Я про то что откуда компилятор знает как шагать по brace-initializer листу
Скорее всего это просто считается как std::initializer_list
источник