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

Несколько вопросов - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ enum: цифры http://www.cyberforum.ru/cpp-beginners/thread335817.html
А можно в перечислениях использовать цифры? Например: enum chislo {1, 2, 3, 4}(только так не работает:gmad:) Просто есть файл, там записано длинное число, и каждую циферку нужно записать в ячейку массива...
C++ Собственный шаблон в Visual Studio Ребята, извиняюсь за глупый вопрос, но можно ли в Visual Studio создать свой собственный шаблон кода программы, например есть одни и те же заголовки, переменные, или часть кода которые я использую в разных программах. Как-нибудь это можно оптимизировать? http://www.cyberforum.ru/cpp-beginners/thread335808.html
C++ Шаблоны функций c++
Хэллоу фрэндс! Столкнулся с проблеммой в решении упражнения. Вот условие: Создайте шаблонную функцию maxn(), которая принимает в качестве аргумента массив элементов типа Т и целое число, представляющее собой количество элементов в массиве, и возвращает элемент с наибольшим значением. Проверьте ее в программе, которая использует шаблон данной функции с массивом из шести значений типа int и с...
C++ файлы в c++
есть текстовый файл. нужно создать другой текстовый файл и переписать, определенное количество символов. файл читать в произвольном доступе с помощью seekg. и сразу символы, переписывать из одного в другой файл. ---- как я токо не пытался. то файл создает полностью пустым, то с одними нулями, то с кракозябрами и тд. в php эта функция $a = fread("1.txt",500); // переменная а получает 500...
C++ Кто нибудь знает как написать игру на С ?) http://www.cyberforum.ru/cpp-beginners/thread335736.html
Зраствуйте Можно ли написать крестики нолики на С ? И как это сделать ? Дайте идею или код. Спасибо за внимание.
C++ Вопрос по поводу кода Здраствуйте я делаю крестики нолики и возник вопрос #include <iostream> using namespace std; void main () { int pole ={0}; cout<<"_|_|_"<<endl; cout<<"_|_|_"<<endl; подробнее

Показать сообщение отдельно
Riderik
 Аватар для Riderik
28 / 28 / 1
Регистрация: 24.07.2011
Сообщений: 171
24.07.2011, 22:04  [ТС]     Несколько вопросов
Цитата Сообщение от Bers Посмотреть сообщение
Надеюсь, вы будите изучать не только, как ими пользоваться, но и как они устроенны.
Я то сам не в теме, но попробую привести простейший пример.

допустим, вам задали создать БД, которая умеет хранить ФИО, возвраст, местро проживание, и тп, и должна выполнять быстрый поиск фамилий. Ну... пусть она должна очень быстро вывести на экран всех Ивановых, старше 30 лет.

В БД - миллионы данных обо всех жителях города-мегаполиса.

Как можно организовать быстрый поиск фамилий в такой БД?

Все начинается с формата самих данных. По другому это называют "индексирование данных".
А по сути - это просто структура данных.

Например, сами данные (фамилии) вы храните в упорядочных массивах.

То есть, у вас есть 33 массива. Один массив содержит все фамилии на букву "А", второй - на букву "Б" и тд.

А в начале структуры находится так называемая шапка, в которой указаны смещения всех массивов в файле.

То есть, если нужно найти всех Ивановых, то БД не нужно будит перебирать всех Авелиев. Она, зная где начинается массив на букву "И" сразу прыгнет к нему.


Далее: Этот массив может содержать Ивановых, Игнатовых, и дт.

Фамилии в массиве так же упорядочны по второй букве фамилии.
А реально массив содержит не сами фамилии, а опять таки смещения на массивы со следующими буквами. То есть, тоже есть своя шапка со смещениями, и БД так же обойдя любых Ибабаевых, прыгнет к Ивановыми.

Короче говоря, БД не будит лопатить все фамилии по очереди, пока не откопает всех Ивановых, а по серии прыжков сразу окажется в нужно месте.

А кроме того, нет никакого резона хранить все данные в одном мега большом файле.
Например, можно хранить в одном файле непосредственно данные, а в другом - все шапки.
Если файл с шапками окажется не слишком велик - его можно загрузить в память целиком. Что бы ускорить процесс прыжков от одного массива к другому. Ну и тп.
Можно например Ивановых хранить отдельно от Игнатовых.
Тогда самих Ивановых будит не так уж и много. И отдельный кусок данных про одних только Ивановых уже не будит весить слишком много. Его вполне можно будит загрузить в память целиком.

Я конечно сильно утрирую, настоящие БД гораздо сложнее и хитроумнее, но хоть какое то представление об индексации данных вы должны поиметь.
Вот уж спасибо. Четко и ясно. В принципе не сложно и наверняка поможет разобраться с БД. А то у нас всегда проблема : преподы не особо-то и объясняют. Любимое их выражение "Дома почитаете - разберетесь". В итоге знают программирование только те кто действительно хотят. Благодарю
 
Текущее время: 06:27. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru