2017-02-02 5 views
0

私のC++プログラムの実行中、私は使用するデータ量があります。 いくつかの基準に応じて、いくつか使いたいと思っています。言い換えれば、要求指示を持つ一種のデータベース。C++プログラムで内部データベースを作成するにはどうすればよいですか?

内部データベースを作成し、DBリクエスト命令で使用できますか?

実行前または実行後にデータを保存する必要はありません。

編集: 私の場合は他のCライブラリを追加することはできません。私は提供されているものと一緒に作業しなければなりません。

+1

[boost :: multi_index'](http://www.boost.org/doc/libs/1_63_0/libs/multi_index/doc/tutorial/)はDBと似ています – NathanOliver

+1

あなたの要件は厳しく不十分です。このデータにどのようにアクセスしますか?どのようなデータですか?いくら?どのように構造化されていますか?これらの質問に答えることができるまで、あなたは誰でも、どの技術を使うべきかを決めることはできません。 –

+0

のようなノードとサブノードを持つHDFデータベース。最後のサブノード(より深い)には、データ(ストロングおよび/またはダブル)が含まれています。データはメモリ内にあります(変数) – tsumey

答えて

3

SQLite in-memory databaseをご覧ください。

または、1つ以上のインデックスを持つコンテナを使用します。 boost::multi_index

+0

ありがとう、私はこれを見ていきます。 – tsumey

0

このデータベースの必要性に応じて、インメモリ構造を使用できます。それはStructsのコレクションですか、それとも適切なリレーショナルデータベースであるのか、または非構造化データだけであるのでしょうか?

+0

これは約100の値ですが、STRUCTではなく、基本的に倍精度と文字列です。 – tsumey

+0

DoubleLinkedListやVectorなどのコレクションや同等のものが最適です。 https://www.tutorialspoint.com/cplusplus/cpp_stl_tutorial.htm – Stanislav

1

データベース理論を使用できます。
1.すべてのレコードをstd::vectorに保存します。
2. std::mapを使用して、検索/インデックステーブルを作成します。

インデックステーブルを使用すると、すべてのデータを並べ替える必要なく、キーの検索時間を短縮できます。インデックステーブルの形式はstd::map<Key_Type, unsigned int>で、unsigned intstd::vectorデータベースのインデックスです。

関連する問題