2010-10-19 2 views
0

Можете ли вы дать мне представление о том, как наилучшим образом я могу хранить данные, поступающие из базы данных динамически. Я знаю количество столбцов раньше, поэтому я хочу динамически создать структуру данных, которая будет содержать все данные, и мне нужно реорганизовать данные для отображения вывода. Одним словом - при вводе запроса «выберите * из таблицы» - результаты придут. как сохранить результаты динамически. (Использование структур, карт, списков ..). Заранее спасибо.данные хранилища динамически поступают из базы данных - C++

ответ

0

Вкратце, структуры данных, которые вы используете для хранения данных, действительно зависят от ваших шаблонов использования данных. То есть:

  • Ваша потребность в данных просто для его вывода? Если да, зачем хранить данные вообще?
  • Если нет, выполняете ли вы поиск по данным?
  • Является ли заказ важным?
  • Вы будете выполнять вычисления с данными?
  • Сколько данных вам нужно удержать?
  • и т.д ...
+0

yup .. думаю, что так же, настоящее настоящее внимание сосредоточено на том, как динамически хранить данные, если возможно, с именами столбцов также ... – jony

0

Массив строк (StringList в Delphi, не уверен, что у вас есть в C++), по одному на строке, где каждая строка представляет собой строку, разделенную запятыми. Это можно легко сбрасывать и читать в Excel в виде CSV-файла, импортированного во множество баз данных. Или XML-документ может быть лучшим. Или что-то другое. «это зависит от ...»

-1

Существует довольно много вариантов для вас из STL. Используйте класс для хранения одной строки в объекте класса или в строке, если вы не хотите создавать объекты, если строки достаточно велики, и вам не нужно обращаться ко всем возвращаемым строкам.

1) Используйте вектор - используйте интеллектуальные указатели (shared_ptr), чтобы создавать объекты класса и нажимать их в векторе. Из-за копирования, связанного с вектором, я бы использовал shared_ptr. Сортировка позже

2) Использование карты/набора. Создание и вставка элементов может быть дорогостоящим, если вы ищете более быстрые вставки. Смотри, возможно, быстрее.

3) Карта хэша - время вставки и время поиска лучше, чем карта/набор.

+0

вы можете разработать третий пункт. – jony

+0

@jony - http: //publib.boulder .ibm.com/Инфоцентр/comphelp/v9v111/index.jsp? тема =/com.ibm.xlcpp9.aix.doc/standlib/stl_unordered_map.htm. – DumbCoder

+0

@jony - см. Раздел «Анализ эффективности». http://en.wikipedia.org/wiki/Hash_table. Время поиска - log n (база 2) для карты/набора в реализации компилятора. Вставка может быть медленной, потому что вы вставляете элемент в нужное место, что может потребовать изменения структуры базового красного черного дерева. – DumbCoder

Смежные вопросы