私はコンピュータ サイエンスの 1 年生で、ランダムに割り当てられた float の配列をバブル ソートし、バイナリ チョップ検索を使用して配列の最後の要素の値を見つける C++ プログラムを作成しています (コードのタイミングを合わせる際の一貫性のため)。
バブル ソートとバイナリ チョップ検索の実行時間を計りたいのですが、C++ 標準時間ライブラリでは 2 番目のレベルの精度しか得られず、このコードはほとんどの場合 1 秒未満で実行されるため使用できません。
Boost を見つけました。Boost DateTime ライブラリのマイクロ秒クロックを使用して、コード実行のサブ秒精度のタイミングを取得する方法としてそれを使用しようとしています。私が使用しているコードはhttp://pastebin.com/U8D0s2hbにあります。このコードを実行すると、Visual Studio 2008 から次のエラーが発生します。
実行時チェックの失敗 #0 - ESP の値が関数呼び出しで適切に保存されませんでした。これは通常、ある呼び出し規約で宣言された関数を、別の呼び出し規約で宣言された関数ポインターで呼び出した結果です。
犯人は時間を ptime オブジェクトとして取得しているように見えますが、これまでランタイム チェックの失敗エラーを見たことがないため、その理由はわかりません。
助けていただければ幸いです。