Пишу обработчик, который считывает из файлов собранную информацию о вызванных в процессе работы программы функциях и обрабатывает ее. С каждой функцией идет информация о том, где она была вызвана: файл, строка и т.п. — это регион. Одна и та же функция может быть вызвана несколько раз. Чтобы сократить размер структур данных в памяти, информация о регионах записывается в отдельный массив, а из массива с функциями делается ссылка на массив регионов.
Я не знаю заранее сколько у меня будет регионов, поэтому массив должен быть динамическим. Кроме того, т.к. регионы не могут дублироваться, при добавлении региона в массив я каждый раз должен делать поиск по всему массиву, на предмет нет ли уже такого региона.
1. Что делать с динамикой? realloc — это медленно и вообще я полагаю дурной тон. Писать самому структуру типа "список", где линковать друг с другом элементы ссылками?
2. Поиск перебором — медленно. Писать продвинутый алгоритм поиска?
Парсер должен быть быстрым + не очень хочется заморачиваться со всеми этими списками и сортировками. Контейнера типа map, как в C++ у меня нет. Есть элегантный выход из ситуации или все-таки придется заморачиваться?