|
|
||||||
Ускоренный поиск текста в массиве11.02.2022, 10:57. Показов 4920. Ответов 20
Метки нет (Все метки)
Здравствуйте
Есть такие вот конструкции.
2) Можно ли разбить этот массив на мысленные куски, например, побив пополам и запустить потоки для поиска в каждом куске ?
0
|
||||||
| 11.02.2022, 10:57 | |
|
Ответы с готовыми решениями:
20
Ускоренный поиск, основанный на использовании единого справочника Ускоренный поиск, основанный на использовании общего справочника Поиск текста в массиве строк String |
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
|
| 11.02.2022, 12:13 | |
|
Kabak, а поиск по имени или по значению?
Добавлено через 56 секунд если только по имени, можно хранить в std::unordered_set , либо в векторе поддерживать порядок по возрастанию и использовать двоичный поиск Добавлено через 31 секунду и хранить лучше не указатели, а экземпляры
0
|
|
|
|
|
| 11.02.2022, 12:24 [ТС] | |
|
Поиск по имени
для _Definitions* я создаю указатели с помощью new std::vector хранит всё в стеке или в куче ? Добавлено через 8 минут Я пытался создать потоки для поиска в таком массиве. Создал, потоки отрабатывают, но только в DEBUG сборке. В Release почему-то находит то, чего на самом деле не существует. Потоки только читают. ( массив на момент поиска в нём полностью сформирован и никто не пишет в него ) Потоки обращаются к разным блокам элементов и никогда не обращаются к одиному и тому же елементу одновременно.
0
|
|
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
|||||||||
| 11.02.2022, 12:45 | |||||||||
Сообщение было отмечено Kabak как решение
РешениеНе по теме:
но, конечно же, всё равно придётся учитывать, если контейнер используется ещё и в другом потоке. Добавлено через 13 минут Kabak,
1
|
|||||||||
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
|
| 11.02.2022, 13:08 | |
|
0
|
|
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||
| 11.02.2022, 13:51 | ||
|
Добавлено через 48 секунд и это не массив, а хеш-контейнер Добавлено через 19 секунд если таки нужен именно массив, придётся держать упорядоченный вектор
0
|
||
|
|
|
| 11.02.2022, 14:02 [ТС] | |
|
у меня тут всё немного сложнее. я для просты привёл пример обрезанной структуры которая используется разными классами и похоже этим всё усложнил.
Я пишу что-то похожее на компилятор С в общем, мне нужно аннализировать текстовые файлы где размещены множественные #define Соответственно, мне нужно все эти #define собрать в кучу и потом по мере появления нового #define, сравнивать и искать по имени в массиве уже сохранённых на предмет совпадений. Чтобы в массиве не было одинаковых имён. Мне нужно каким-то образом получать индекс элемента в массиве, если он был найден. И потом где-нибудь в другом месте по этому индексу извлекать нужный элемент и что-то дальше делать со структурой привязанной к этому индексу. т.е. имя переменной из массива не подходит в качестве индекса. Как всё это лучше организовать? vector < struct > меня вполне устраивает, но мне нужен быстрый поиск в этом векторе по конкретному СИМВОЛЬНОМУ полю в struct. Благодарю , что удиляете мне время.
0
|
|
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||
| 11.02.2022, 14:11 | ||
|
Когда нужно вставить новый элемент, ищем (find) по имени - если уже такое есть, говорим юзеру ошибку. Если нету, добавляем элемент (insert или operator [] ) в контейнер с вектором всё то же самое можно провернуть, только добавится ручной работы (хотя, можно сделать свой класс-контейнер на основе вектора, и все действия описать в виде методов). Хранить элемент нужно будет упорядоченно, при добавлении - искать место для вставки и вставлять так, чтобы порядок не нарушался и не было повторов (std::lower_bound и пара проверок), поиск - двоичный (std::lower_bound или std::binary_search) с хешем плюс в том, что уже всё готово к использованию + быстрый поиск с вектором плюс в более скромном потреблении памяти
0
|
||
|
|
||||||
| 16.02.2022, 21:13 [ТС] | ||||||
ругается, что it должно быть bool или конвертироваться в bool Добавлено через 2 минуты https://i.gyazo.com/4142d60108... 2db8cf.png
0
|
||||||
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||||||
| 16.02.2022, 21:18 | ||||||
|
Kabak, нужно включить стандарт C++17, либо разнести по строкам:
0
|
||||||
|
|
||||||
| 17.02.2022, 09:55 [ТС] | ||||||
Получаю ошибку : error C2280: 'std::_Uhash_compare<_Kty,_Hasher,_Keyeq >::_Uhash_compare(const std::_Uhash_compare<_Kty,_Hasher,_Keyeq> &)': attempting to reference a deleted function Добавлено через 1 минуту как организовать быстрый поиск по конкретному полю типа string из структуры или класса ? Добавлено через 3 минуты Когда используется простой тип, а не структура , то проблем с поиском нет. Я понимаю, что я что-то не понимаю, если у вас есть время, разъясните мне , пожалуйста. нашёл ещё материал, но там тоже не всё гладко с синтаксисом
0
|
||||||
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||
| 17.02.2022, 10:00 | ||
|
Kabak, обрати внимание, как у меня объявляется тип контейнера
1
|
||
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||||
| 17.02.2022, 10:33 | ||||
![]() _Reserved_Words{ Test }. Можно игнорировать в данном случае
0
|
||||
|
|
||||||
| 23.03.2022, 13:00 [ТС] | ||||||
|
Подскажите ,
Как отказаться от auto и заменить на явный тип ? Почему-то не прокатывает явное указание типа _Reserved_Words
0
|
||||||
|
фрилансер
6465 / 5679 / 1131
Регистрация: 11.10.2019
Сообщений: 15,122
|
||||||
| 23.03.2022, 13:08 | ||||||
|
Kabak, так это ж итератор
0
|
||||||
|
|
|
| 23.03.2022, 14:00 [ТС] | |
|
Так не получается , потому, что значение Test вычисляется индеивидуально внутри каждого case
Добавлено через 16 минут я пытаюсь заменить конструкцию с vector на unordered_set в существующем и рабочем коде для ускорения поиска элемента.
0
|
|
| 23.03.2022, 14:00 | |
|
Помогаю со студенческими работами здесь
20
Поиск текста в массиве DOC-файлов Поиск ячейки в массиве данных по части текста Поиск текста в массиве DOC (с логическими операторами), переименование, копирование Ускоренный градиентный спуск Ускоренный алгоритм Брезенхема Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Автозаполнение реквизита при выборе элемента справочника
Maks 27.03.2026
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
При выборе "Спецтехники" (Тип Справочник. Спецтехника), заполняется. . .
|
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут.
https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc
Первый документ красиво выглядит, но без схемы.
Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
|
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Программный код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере".
Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита,. . .
|
Команды формы и диалоговое окно
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти".
Программный код из решения ниже на примере нетипового документа "ЗаявкаНаРемонтСпецтехники" разработанного в конфигурации КА2.
В качестве источника данных. . .
|
|
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер
Написал заготовку:
dotnet new console --aot -o UrlHandler
var items = args. Split(":");
var tag = items;
var id = items;
var executable = args;. . .
|
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
|
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений.
9TO2GP2bpX4
a42b81fb172ffc12ca589c7898261ccb/
https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/
Слева синяя линия -. . .
|
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. .
Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
|