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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Программа Таймер http://www.cyberforum.ru/cpp-beginners/thread816221.html
Здравствуйте.Помогите расписать/объяснить каждое действие данной программы.Спасибо. #include <iostream> using namespace std; int main() { setlocale(LC_ALL,"Russian"); int i; int s=0; int m=0;
C++ Y=m*5*g*cosA Y=m*5*g*cosA http://www.cyberforum.ru/cpp-beginners/thread816220.html
Обнулить кусок памяти (выделенной под указатели) по быстрому C++
Есть хеш-таблица и есть кусок памяти под неё, нужно занулить изначально весь кусок памяти, но как можно быстрее, те хорошо бы использовать что-то из стандартных функций с asm вставками, как вот memcpy например. Другое дело что у меня не получааеться это сделать: Element** hashTable = new Element*; for(int i=0;i<8195/4;i++) hashTable = 0;...
C++ Как разделить код по классам?
Программа имеет слишком долгий код, можно его его как-то разбить на части по тематике, например, и покидать его в другие файлы(.срр), а потом подключить???
C++ Решето Эратосфена http://www.cyberforum.ru/cpp-beginners/thread816213.html
Кому надо - программа "Решето Эратосфена" на C++. Записывает в файл 1 000 000 первых простых чисел за 1/10 секунды (без вывода)!!! #include <iostream> #include <fstream> #include <vector> using namespace std; int main() { const int N = 1000000;
C++ Массив: произвести сдвиг элементов на к позиций, где к-индекс максимального элемента массива помогите пожалуйста разобраться с указателями, т.к. тема для меня новая и, как оказалось, сложная(( В задаче дан массив A. Нужно заполнить его генератором случайных чисел и затем произвести сдвиг элементов на к позиций, где к-индекс максимального элемента массива. Вот с поиском максимального элемента у меня и не получается(( #include<stdio.h> #include<math.h> #include<conio.h> #include... подробнее

Показать сообщение отдельно
Gepar
 Аватар для Gepar
1173 / 529 / 20
Регистрация: 01.07.2009
Сообщений: 3,511
23.03.2013, 12:53     Хранение и поиск связанных пар строк
Есть строковые данные:
имя - логин - данные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.

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