Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
manya Поиск некоторого подмножества - поиск совпадений слов с заданным набором или с совпадением с последовательностью слов? Если только поиск с совпадением слов из заданного набора, то лучше проходы по бинарному дереву. Быстрее будет IMXO
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
manya писал(а):
oxy совпадение с последовательностью
Тут лучше иметь некий "массив" символов. Я уже упоминал о динамическом массиве. Откопаю некогда написанный класс - выложу. Правда он писался по DOS и нужно поменять все типы индексов, размеров и пр на что-то типа long unsigned, так же и с malloc разобраться... З.Ы. Покопаться в загашниках - так и быстрый поиск последовательности в массиве можно нарыть...
Member
Статус: Не в сети Регистрация: 15.02.2009 Откуда: Лангепас
manya Вот Скачать файлик structs.zip с rapidshare.ru с реализацией нескольких типов данных. Основа - класс, динамический массив. Дельта, с которой изменяется размер равна
Код:
#define MEMPORTION 16
Класс создавался как хранидище указателей (на объекты в моей проге), поэтому всё завязано на void* , думаю переделать несложно будет. (внимание на удаление и вставку элемента, а то деструктор на char = 'd' вызовешь )
Подскажите, насколько быстро срабатывают события CreateEvent, SetEvent, ResetEvent (WinApi) для синхронизации потоков?
Допустим есть 2 рабочих потока и они должны часто синхронизироваться (каждый не должен начинать следующую итерацию, пока оба не закончат предыдущую). То есть в главном потоке в цикле ожидать (WaitForMultipleObjects(2, hEvent, TRUE, INFINITY)) пока оба не зажгут событие (SetEvent()), что они закончили итерацию. Насколько оправдан такой механизм в плане быстродействия, если итерации довольно частые (сотни раз в секунду), или все время будет тупо тратиться на ожидание и установку событий?
ToSHiCКакая альтерантива? Учитывая, что размер неизвестен, то только динамические структуры - списки, динам. массивы, тот же vector и пр.
вот этих структур только очень много
manya писал(а):
oxy 0. Альтернатива - пока список 1. Смысл - поиск некоторого заданного подмножества слов 2. Извлечение - поиск, сравнения, вычисление некоторых функций по совпадающим группам символов в словах Не, не "Руслан и Людмила":)
поиск точный, или по совпадению от начала слова, или просто совпадение подстроки в строке? в первом случае hashmap, во втором - map, в третьем можно и список. но возможны и хитрые варианты с применением каких нибудь неординарных функций сравнения для построения бинарного дерева, например.
Добавлено спустя 5 минут 1 секунду:
Crabman писал(а):
Подскажите, насколько быстро срабатывают события CreateEvent, SetEvent, ResetEvent (WinApi) для синхронизации потоков?
Допустим есть 2 рабочих потока и они должны часто синхронизироваться (каждый не должен начинать следующую итерацию, пока оба не закончат предыдущую). То есть в главном потоке в цикле ожидать (WaitForMultipleObjects(2, hEvent, TRUE, INFINITY)) пока оба не зажгут событие (SetEvent()), что они закончили итерацию. Насколько оправдан такой механизм в плане быстродействия, если итерации довольно частые (сотни раз в секунду), или все время будет тупо тратиться на ожидание и установку событий?
время работы SetEvent - порядка единиц-десятков микросекунд. А вот WaitForMultipleObjects будет сразу решедулить поток, тут и до нескольких миллисекунд время может легко вырасти, в зависимости от количества запущенного софта, приоритета потока и количества ядер процессора/ов
Member
Статус: Не в сети Регистрация: 03.03.2011 Откуда: Amsterdam
Привет всем, почитываю на досуге K&R, желаю закрепить результат приложением на С, в сфере задач которого работа с сетью и регулярными выражениями. Подскажите, какие есть хорошие либы, желательно кроссплатформенные (либо просто под винду) на стандартный C - нужны работа с сетью + документация к этому делу. Может кто сталкивался? Дело в том, что по "C Networking" гугл выдает мануалы под никсы. Это немного не то. А на С++ в данный момент переходить не хотелось бы.
Добавлено спустя 1 час 29 минут 52 секунды: Черт, ответ был настолько очевиден, что сперва от меня ускользнул. Конечно же, мне нужна cURL ! И примеры хорошие.
curl - это не работа с сетью, это http/ftp библиотека. с сетевыми библиотеками именно под С всё сложно. с другой стороны, там не так уж прямо много кода нужно написать. http://www.codeproject.com/KB/IP/winsockintro02.aspx
Member
Статус: Не в сети Регистрация: 03.03.2011 Откуда: Amsterdam
ToSHiC спасибо за помощь, но я просто крайне некорректно выразился, важна была именно работа по http, в простом проявлении, к примеру, забрать исходник веб страницы для анализа, поэтому CURL и приходится как нельзя кстати.
Member
Статус: Не в сети Регистрация: 03.03.2011 Откуда: Amsterdam
KirillMga ну, это и не программы, а просто функции же. В первом случае кажется неправильным: 1) объявляем функцию как флоат, а возвращаем инт. Логичнее сделать и то, и то интом, т.к. возвращаться будет в любом случае целочисленное значение. 2) в функции фигурируют A, B - может быть, они объявлены константами? Лучше было бы сделать просто передачу этих переменных в качестве аргументов. Короче, мой вариант - http://pastebin.com/W6vRS1s2
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения