Форум программистов, компьютерный форум CyberForum.ru

Простой аналог MAP - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Непонятная для меня ошибка http://www.cyberforum.ru/cpp-beginners/thread832017.html
Доброго времени суток. Во время выполнения оператора присваивания вылетает ошибка "Access violation", происходит это в месте обращения к элементу массива переменной input (см. код). Если просто посмотреть что находится в массиве, то там вместо чего-то вразумительного находится "CXX0030: Error: expression cannot be evaluated". Что это может значить? class matrix { public: matrix(int,int);...
C++ Сиб запись и чтение из файла Помогите, пожалуйста, нашла уже существующие темы по данному вопросу, но так как не все понятно, интересует именно частные случай. Задание:Записать во внешний файл целое число N. Написать программу, которая считывает это число из файла, вводит с клавиатуры одномерный массив из N элементов, вычисляет разность max и min значения массива и выводит значение в другой файл. Вот написанная мною... http://www.cyberforum.ru/cpp-beginners/thread832014.html
C++ Удалить из списка неупорядоченные подсписки
Доброго времени суток! Из списка нужно удалить неупорядоченные подсписки. К примеру, если была последовательность 6 8 2 11 4 9 20 55 должно остаться: 6 8 11 20 55 Помогите пожалуйста реализовать функцию удаления этих элементов. Заранее спасибо! Мой код: #include "iostream" #include <time.h> using namespace std;
C++ перевести с Паскаль
123
C++ Реализовать класс матриц, СРОЧНО! http://www.cyberforum.ru/cpp-beginners/thread832001.html
Помогите реализовать класс матриц, очень надо #ifndef MATRIX_H #define MATRIX_H 1 #include <iostream> class Matrix {
C++ Класс friend Проблемка с доступом через дружественный класс: class Game { friend Player; //тут объявлен класс-друг protected: string name; }; подробнее

Показать сообщение отдельно
awpe
2 / 2 / 0
Регистрация: 23.11.2011
Сообщений: 87
09.04.2013, 18:23  [ТС]     Простой аналог MAP
Ternsip, вы немогли бы подробнее описать, как использовать предложенную вами структуру данных, для экономии места?

У меня был такой ход мысли: в худшем случае надо было бы каждый раз создавать новую запись (при изменении места жительства например), потом собирать массив (при запросе) с записями по конкретному человеку (select * from `bd` where `id`='ID' - аналог sql) и в сортированном виде (по дате) выдавать данные.

Как улучшить? - Сделать класс для гражданина, в котором хранится его ИД, имя. фамилия и массив для всего остального (этот массив сортирован по дате). уже лучше - можно в основном классе иметь массив граждан с сортировкой по ИД (т.к. по условию задачи запросы на поиск проводятся по ИД исключительно), и использовать бинарный поиск для нахождения записи. Собственно такой скорости работы программы достаточно, но здесь появляется вопрос с памятью, что если 20000 человек имеют 2000 уникальных фамилий? Одна фамилия пусть в среднем будет 8 символов, вместо 16000 символов храним 160000 символов, и так по всем строковым данным... Как улучшить - сделать словари для строк описывающих разные типы (имя, фамилия, город, улица). Так как задача для учебы, и выполнятся будет один раз при проверке, можно опустить вопрос с очисткой словарей от неиспользуемых данных, т.е. данные в них только добавляются. Словарь представлен уникальной парой - ключ и значение. Теперь можно в классе гражданин хранить, только ключи (числа) для соответсвующих словарей. Но здесь снова возвращается проблема скорости - при запрсое на вывод надо будет искать данные по этим ключам, что делать - вместо ключа использовать указатель на строку в массиве словаря. И вроде все - можно успокоится, но при добавлении новой строки в словарь надо сохранить ее уникальность, а поиск с таком маасиве будет выполнятся за линейное время - нужен сортированный массив, но ведь при добавлении новой строки в центр массива, произойдет смещение указателей, значит нужно другое решение....

Я не силен в проектировании бд, подскажите в каком направлении двигаться

Добавлено через 12 минут
Индексную таблицу сделать? - т.е. данные хранятся в одном массиве, указатель на каждую строку также хранится в другом смежном массиве указателей, который не сортируется сам по себе: при добавлении новой строки, начинается сдвиг указателей в массиве строк, паралелльно с ним записываются новые значения указателей на сдвигающиеся строки в соответсвующие индексы массива указателей. Ерунда какая то...

Как устроен mysql, что он может быстро находить ячейки в таблице для их чтения/удаления/добавления данных ?
 
Текущее время: 11:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru