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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Gepar
1175 / 531 / 20
Регистрация: 01.07.2009
Сообщений: 3,517
#1

Хранение и поиск связанных пар строк - C++

23.03.2013, 12:53. Просмотров 229. Ответов 0
Метки нет (Все метки)

Есть строковые данные:
имя - логин - данные1 - данные2
пара имя-логин всегда уникальная, данные привязанные к ней могут легко повторяться. Задача:
1)Реализовать функцию добавления проверяющую нет ли такой связки логин-пароль перед добавлением.
2)Реализовать функцию поиска которая ищет заданную пару логин-пароль и если такая есть возвращает данные1 и данные2 для этой пары, иначе ничего не делает.
3)Реализовать функцию удаления пары по паре логин-пароль.

Для этих целей я использую хеширование (каждый раз при добавлении считаю хеш для логина и пароля)
C++
1
2
3
4
5
6
7
8
9
    it = one.begin();
    end = one.length() < 5 ? one.end() : one.begin()+5;
    while(it != end)
        hash = hash << 1 ^ *it++;
 
    it = two.begin();
    end = two.length()<5 ? two.end() : two.begin()+5;
    while(it != end)
        hash = hash << 1 ^ *it++;
(Кстати попутный вопрос: что быстрее: итератор или просто навигация по строке string вида [i] ?)
И потом получаю 12бит от этого хеша и ложу в эту ячейку массива свой Element с этой связкой из 4х элементов (если ячейка пустая или же добавляю в хвост списка если нет).
Размер хеша сейчас 8192, а примерное количество записей для тестирования ~ 15 000.

Проблема: я не укладываюсь по времени Всё хорошо работает, при поиске я провожу только поиск по хешу (столкновения даже не возникают), но всё равно при поиске данных сервер выдаёт что моя программа в лимиты времени не вписывается, что тогда посоветуете применить для ускорения для решения такой задачи?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
23.03.2013, 12:53
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Хранение и поиск связанных пар строк (C++):

поиск нечетных пар - C++
Подскажите пожалуйста, нужно в массиве перебирая парами элементы найти все неченые пары и увеличить их на 1. void Vect::func() {int...

Вектор пар и бинарный поиск - C++
Всем доброго времени суток. Решаю следующую задачу. Есть vector &lt;pair&lt;int,int&gt;&gt; v я его сортирую и потом хочу...

Поиск противоположных пар чисел - C++
Народ, помогите пожалуйста написать программу! Условие задачи следующее. Записать в файл последовательного доступа n целых чисел,...

Поиск среди пар элементов вектора - C++
В заданном векторе провести поиск среди пар его элементов и найти те пары, разность между элементами которых есть величина, наибольшая для...

Работа со строками. Связное хранение строк. - C++
Постановка задачи В текстовом файле хранится последовательность слов. Предполагается, что слово содержит не более 20 букв, слова...

Хранение большого (15000) количества строк в строковом массиве - C++
Здравствуйте! Мне нужно создать генератор слов. Я решил пойти путем словаря + генератор псевдослучайных чисел. Файл сделал вложением,...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
23.03.2013, 12:53
Привет! Вот еще темы с ответами:

Поиск пар чисел в массиве, которые в сумме дают определенное число - C++
Условия программы: Дан целочисленный массив положительных чисел,(не отсортированный) и полож число &quot;s&quot; типа int . В массиве нет...

Бинарный поиск таких пар чисел массива, чтобы их сумма попадала в заданный диапазон - C++
доброго времени суток. не смог разобраться с бинарным поиском, математически примерно имею представление, а написать программу не...

Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар. - C++
Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар. #include&lt;stdio.h&gt; ...

Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое из таких пар - C++
помогите пожалуйста решить Для встречающихся в заданном тексте пар расположенных символов указать, сколько раз встречается каждое...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru