Форум программистов, компьютерный форум 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
08.04.2013, 22:42     Простой аналог MAP
Доброго времени суток,

Есть задание реализовать регистр граждан. В нем хранятся значения: идентификатор, имя, фамилия, адрес, время записи. Идентификатор уникальный для каждого. Суть задачи в том чтобы сэкономить максимум процессорного времени и памяти. Поэтому если гражданин изменил адрес не надо создавать новую запись, сохранить только измененные значения. Нельзя пользоваться stl втч и std::string, я вижу решение задачи так: класс который реализует простейший стринг с перегрузкой базовых операторов. Простейший map в виде ассоциативного массива число-строка с сортировкой по строке. Класс "гражданин", в котором есть ид, имя, фамилия, адрес, дата(тоже строка) последнего изменения. ИД инт, имя, фамилия, адрес, дата - массивы интов, в них, в порядке вложения, хранятся числа, соответсвующие строке из списка типа map. В основном классе программы хранится массив типа класс "гражданин", причем сортировка там идет по имени и фамилии с приоритетом на имя, (хранятся соотв. числа из списка map, а не сами строки). Каждая запись вкладывается в отсортированый массив так, чтобы не нарушить порядок. Для поиска Вани Петрова ищутся номера строк Ваня и Петров, потом бинарным поиском по этим двум ключам идет поиск в овсновном классе.

Собственно, какие на взгляд уважаемых гуру, у такого подхода есть минусы? Что могло бы быть сделано лучше/быстрее/требовало бы меньше памяти? Возможно требуется другой подход.

Спасибо.

Добавлено через 6 минут
С одной стороны, я выигрываю в памяти, так как все строковые данные гарантированно уникальные (на 10 000 граждан может оказаться только 500 уникальных фамилий, например), что экономит память, но сдругой строны надо бегать по ссылкам туда сюда, что не лучшим образом сказывается на скорости, несмотря на применение бинарного поиска.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:07. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru