2011-10-15 2 views
2

配列、ベクトル、リスト、マップ、およびunordered_mapsをテストするテスト構造を構築したいと考えています。基本的には、各構造に大量のランダムデータを設定したいと考えています。私はこれらの3つのテストを実行したい。私は挿入と検索のBig Oの傾向を見ることができるようにしたい。コンテナのテスト構造

質問ランダムなデータセットを.txtファイルに保存するか、データをコンテナに直接送り込む必要がありますか?

私はそれをディスクに保存するので、どのように見えるかを視覚化できると思っていますが、どのようなタイプのファイルサイズがコンテナを破るのだろうと思います。

時間関数が正確ではないため、データセットが大きくなるほど、挿入と検索の平均時間が短くなります。

  1. 移入ブレーク
  2. 計算インサート回
  3. 計算検索回数
+0

「挿入と検索のBig Oの傾向を知りたい」どうして? C++標準では、各コンテナに対してこれらがどのようになるかを定義しています。あなたの実装が標準をどの程度うまく実装しているかを疑う余地がない限り、あなたはまだ分かっていないものは見つけられません。 –

答えて

2

コードでデータを生成する対テキストファイルが本当にあなた次第です...

ようになるまでSTLの制限としてはvector::max_sizeを使うことができます。これはベクトルが動的な配列なので、配列の良いベンチマークともなります。この関数は、リストとマップにも存在します。

ここで重要な点は、挿入するときに動的に拡大するのにかかる時間を測定するかどうかです。ベクトルを宣言して挿入を開始しただけの場合は、現在の割り当て制限に達するたびに2倍になると思います。あるいは、現在の割り当てを、事前定義されたデータ・セットのサイズに、vector::reserveで設定することもできます。

関連する問題