2010-10-19 67 views
0

你能給我一個想法,我可以存儲來自數據庫動態數據的最佳方式。我知道以前的列數,所以我想創建一個動態的數據結構,將保存所有的數據,我需要重新組織數據以顯示輸出。總之,當我們輸入查詢「select * from table」時,結果就會出現。如何動態存儲結果。 (使用結構,地圖,列表..)。提前致謝。存儲數據動態來自數據庫 - c + +

回答

0

簡而言之,您用來存儲數據的數據結構實際上取決於您的數據使用模式。那就是:

  • 你需要輸入數據嗎?如果是這樣,爲什麼要存儲數據呢?
  • 如果不是,你會在數據上執行搜索嗎?
  • 訂購重要嗎?
  • 你會用數據執行計算嗎?
  • 需要保存多少數據?
  • 等...
+0

yup ..也是這樣想的,現在焦點是如何動態地存儲數據,如果可能的話還有列名... – jony 2010-10-20 06:36:17

0

的字符串數組(StringList的德爾福,不知道你有C++),每行一個,其中每行是一個逗號分隔的字符串。這可以輕鬆轉儲並作爲.csv文件讀入Excel,並導入到大量數據庫中。 或者,XML文檔可能是最好的。或者是其他東西。 「這取決於......」

-1

對於你來說,STL有相當多的選擇。如果您不想創建對象,並且您不需要訪問所有返回的行,則可以使用類在類對象或字符串中存儲一行。

1)使用矢量 - 使用智能指針(shared_ptr)創建類的對象並將它們推入矢量中。由於涉及向量的複製,我會使用shared_ptr。稍後對它進行排序

2)使用map/set - 如果您正在尋找更快的插入,創建和插入元素可能代價高昂。查找也許更快。

3)哈希圖 - 插入和查找時間比地圖/集好。

+0

能不能詳述第3點.. – jony 2010-10-20 06:38:37

+0

@jony - http://publib.boulder .ibm.com /信息中心/ comphelp/v9v111/index.jsp的?主題=/com.ibm.xlcpp9.aix.doc/standlib/stl_unordered_map.htm。 – DumbCoder 2010-10-20 09:28:53

+0

@jony - 請參閱性能分析部分。 http://en.wikipedia.org/wiki/Hash_table。在編譯器實現中,查找時間是log n(基數2)的映射/集合。插入可能很慢,因爲您在正確的位置插入了一個元素,這可能需要更改基礎紅黑樹的結構。 – DumbCoder 2010-10-20 09:32:17