代表的關係,我想代表C++代碼的關係(表):在C++
- 關係的列是整數。
- 關係中的列數在運行時是固定的。
- 不應該允許重複(這是成本的主要來源)。
- 我想從名稱到關係的地圖。
有效實現的任何想法,這裏的主要問題是在插入時檢測重複項,它可能非常昂貴。
代表的關係,我想代表C++代碼的關係(表):在C++
有效實現的任何想法,這裏的主要問題是在插入時檢測重複項,它可能非常昂貴。
使表中的每一行爲struct Row
。
使用std::set
或std::unordered_set
來存儲這些結構。可以在(對於std::set
)O(log n + d)時間或(對於std::unordered_set
)攤銷O(d)時間中檢測碰撞(查詢),其中d是列數。
要有效地從名稱映射到行,請創建一個boost::bimap<std::string, Row>
。
KennyTM有一個點。你可以使用SQLite。如鏈接中所述,您可以使用它來創建臨時內存數據庫。
Unicity是一個非常標準的數據庫約束... – 2010-03-10 15:15:39
他早些時候做出了這個評論,自那以後我改變了我的帖子。 – 2010-03-10 15:18:12
你想要關係中的列的名稱,或者是索引好嗎? – 2010-03-10 14:44:04
我更喜歡有名字,但是我可以沒有他們。 – myahya 2010-03-10 14:46:01
你能描述一下你想要處理的關係嗎?例如,如果你的主要目標是做一些聚合的東西,其他模式可能適用。 – 2010-03-10 14:51:18