Surreal
Все значения == все элементы, порядок не важен?
ᅟ
Порядок элементов в листах разный
Surreal
Так у вас две строки или два листа строк?
ᅟ
Два листа
ᅟ
Но на самом деле там задача чуть сложнее.
из БД берется лист, и сравнивается с источником (тоже лист), и так идет перебор по БД пока не найдется подходящий лист
ᅟ
Surreal
Какой-то трэш. Опишите лучше задачу.
ᅟ
Задача такая:
Есть N кабинетов, у каждого кабинета есть свои свойства (наличие компьютеров, радиотехники и т.п). Задача такая. Пользователь вводит свойства которые нужны - получает номер кабинета
Surreal
Ну так и делайте селект в базу по свойствам.
ᅟ
Использую БД SQLITE.
там таблица roms в ней столбцы specs (свойства) и num (номер кабинета)
ᅟ
Surreal
Нехер их так забивать.
ᅟ
А как ?
ᅟ
В таком случае просто набор нужных свойств должен быть индентичен тому что в БД. А по факту их может быть больше.
Surreal
Можно какую-нибудь интовую маску придумать, можно тупо каждое свойство отдельным булом.
Surreal
А крутиться в while, конвертируя листы в сеты на каждой итерации - это нормально?
Surreal
Делайте нормальную структуру бд и будет вам счастье. Проблем с query.value() не вижу никаких.
Surreal
Сделать просто enum со списком свойств и все.
ᅟ
Кол-Во свойств динамическое
ᅟ
Т.е ради двух-трех свойсвт делать таблицу с 100500 стоблцами - говнокод
ᅟ
Парсинг по StringList наиболее удобный вариант
Nikita
Тогда сортируй оба листа и сравнивай поиндексно
Surreal
Можно на каждое свойство создавать таблицу, в которой будет только одно поле - номера аудиторий с этим свойством.
Surreal
Dr. Friedrich
Мне кажется, он хочет вхождение множеств проверить. Кажется, в стандартной библиотеке есть такие функции.
Surreal
Можно каждому свойству присвоить свой номер бита, создавать маску выбранных свойств, потом делать селект where ('smthg' & paramMask) = paramMask
Evgenii
1, 2, 5 != 1, 2, 4, 5
левый указатель увеличиваем если элементы равны, правый если правый меньше левого, если левый больше возвращаем false
Surreal
Evgenii
Surreal
Где O(n), если нет сортировки по маскам + чистый и адекватный код.
Anonymous
Constantine
Constantine
И практический порядок N
Constantine
Если на все наплевать, просто линейный поиск, храним все упорядоченно в векторе и std::set_intersection
Влад
Бандиты, есть конфочка функционально программирования?? (haskell или Erlang)
melvin
melvin
ищи
Constantine
C++ функциональный язык, в нем же есть функции :)
Влад
Спасибо)
Алдар
Влад
Ivan
Кстати, парни. Вы как приватные члены класса именуете? mHeight или m_height. В Qt несмотря на camelCase приватные пишут через нижнее подчеркивание
Constantine
3872 конвенции
Danil
У нас на проекте приватные поля в _lowerCamelCase
Constantine
с подчеркивания?
Danil
Yep
Constantine
никогда не любил конвенции, начинающие с подчеркивания что-либо
Constantine
хотя выбор очень сильно зависит от среды разработки
Constantine
например, отличная идея начинать с zzz_ если автодополнение косячит
Constantine
у нас такое имя для полей, которые не те хоббиты, что вы ищете
Ivan
Plain C++
Constantine
вообще возьмите какую-нибудь готовую конвенцию и используйте, например, гугла
Constantine
вроде это не так актуально для _ полей класса
Constantine
__ будут потенциальные проблемы, да
Constantine
введут __super в стандарт 😆
Surreal
Угу. Поэтому у меня уродский код:
private:
int name_;
void doSmthng_();
Constantine
Constantine
хм... в конструкторе можно name(name)
Surreal
Был такой код-стайл где-то, я вот и привык.
Constantine
знаю, что знаешь :)
Constantine
мой вижачок любезно не показывает в куче случаев все, что нельзя вызвать снаружи
Vladislav
А есть форматтеры, которые энфорсят нейминг конвеншны?
Constantine
Constantine
Вообще, если ситуация как сейчас в плюсах продолжится, я лично буду всем предлагать тупо отказываться от самостоятельного написания .h файлов в 90% кода и использовать цепочки описание - генератор
Constantine
Есть куча плюсов, например, большая часть имен может быть отрезолвана автоматом и поэтому все include прогенерированы
Constantine
Так что перекомпиляция не будет превращаться в ад из-за того, что кто-то вместо forward declaration инклуднул definition класса где не надо
Constantine
Не говоря о том, что можно автоматически где надо компилировать сериализаторы, компараторы, сравнивалки и прочие случае "где моя интроспекция, компилятор?"
Крылатый
Любопытная штука https://github.com/tower120/DeferredUniquePtr
Крылатый
Дискасс
Nikita
на рит никто не выступает?
Berkus
Дискасс
Это же саттеровский гарбадж коллектор нэ?
Крылатый
Evgenii
http://lists.gnu.org/archive/html/info-gnu/2017-06/msg00002.html
Anton
Самое лучшее, что с ним произошло в этом выпуске -- появилась возможность глянуть в кишки rvalue.
vladislav
Ты уверен, что эта проблема не спцифична конкретно для тебя? Не встречал такого, если честно. Мб просто не замечал.