Size: a a a

2021 July 14

Ps

ProIt same in supapro.cxx
это те что хешированные ключи?
источник

Ps

ProIt same in supapro.cxx
ну ясно, ща почитаю
источник

C

Chuvi in supapro.cxx
Товарищи, подскажите такую штуку.
У меня MSVC 19-й это собирает без вопросов
https://github.com/Stiffstream/json_dto/blob/7fce92cd3bdacdcd0b41ed26d2cc981e3f70956e/dev/json_dto/pub.hpp#L372

11-й GCC заявляет:
~/../json_dto/pub.hpp:372:44: error: expected ‘)’ before ‘&’ token
 372 |         container_filler_impl_t<C, true>( C & cnt )
     |                                         ~  ^~
     |                                            )
~/../json_dto/pub.hpp:373:31: error: expected unqualified-id before ‘,’ token
 373 |                 : m_cnt{ cnt }, m_it{ cnt.before_begin() }
     |                               ^
~/../json_dto/pub.hpp:374:9: error: expected unqualified-id before ‘{’ token
 374 |         {}
     |         ^
собственно, вопрос: что не так?
источник

ЛС

Лёха Серый in supapro.cxx
Плохо знаю c++, но на скорую руку нужно сделать небольшую утилиты. Хочу передавать в метод callback функцию. Вот так определяю метод `void Modbus::readRequest(int startAddress, int count, void (*callback)(QList<qint16> result)) { ... }`
Вот так пытаюсь передать лямбда в это дело:
void HardwareController::checkVfdState(const QJSValue &callback) {
   auto lamb = [callback](QList<qint16> result){
       qDebug()<<result;
   };
   m_modbus->readRequest(0x2100, 0x0001, lamb);
}
Но комплиятор говорит что так делать нельзя. Если убираю  [callback] то все работает. То есть такой вариант компилируется:
void HardwareController::checkVfdState(const QJSValue &callback) {
   auto lamb = [](QList<qint16> result){
       qDebug()<<result;
   };
   m_modbus->readRequest(0x2100, 0x0001, lamb);
}
Подскажите пожалуйста что я делаю не правильно?
источник

S

SupaproBot in supapro.cxx
Переслано от Егор Егоров...
Есть unordered_map - список смежности. Что делать, если для двух разных вершин сгенерируется одинаковый хэш?
источник

АК

Александр Караев... in supapro.cxx
Переслано от Побитый Кирпич...
Будет коллизия, которая решается в стандартной хэш таблице через метод цепочек
источник

АК

Александр Караев... in supapro.cxx
Переслано от Danya
Так если одинаковый хеш, то это считается одинаковым элементом
источник

АК

Александр Караев... in supapro.cxx
Переслано от Побитый Кирпич...
одинаковость хэша это недостаточное условие для одинаковости элементов
источник

АК

Александр Караев... in supapro.cxx
Переслано от Danya
Оно в unordered контейнерах ещё использует оператор==?
источник

АК

Александр Караев... in supapro.cxx
Переслано от Nikita Provotorov
конечно, иначе как колизии то разрешать
источник

АК

Александр Караев... in supapro.cxx
Переслано от Denis Paukaev
да, без этого не понятно как отличить
источник

АК

Александр Караев... in supapro.cxx
Переслано от Danya
В смысле как
источник

АК

Александр Караев... in supapro.cxx
Переслано от Danya
Одинаковый знаю хэш == тот же элемент
источник

АК

Александр Караев... in supapro.cxx
Переслано от Nikita Provotorov
а можете пояснить, как вы unordered_map используете для списка смежности? что-то типа unordered_map< int, list<int> >?
источник

АК

Александр Караев... in supapro.cxx
Переслано от Побитый Кирпич...
А если коллизия?
источник

АК

Александр Караев... in supapro.cxx
Переслано от Nikita Provotorov
представим, что у вас хэш-мапа из двух банок, которые суммарно 100 элементов содержат, например по 50 элементов в каждой банке
источник

АК

Александр Караев... in supapro.cxx
Переслано от Nikita Provotorov
как различать элементы внутри банки?
источник

ЕЕ

Егор Егоров... in supapro.cxx
unordered_map<Vec, std::vector<Vec>, hast_t>

Vec {
double x, y, z }
источник

D

Danya in supapro.cxx
Мне сложно мыслить такими аналогиями
"Хеш мапа из двух банок" — что чиво каво
источник

АК

Александр Караев... in supapro.cxx
Можно нарваться на очень интересные баги, если использовать в качестве ключей floating point
источник