sqlite3_prepare_v2()ステートメントを実行した後、それを実行する必要がありsqlite3_step()ます。
SQLITE3_ROWとりあえず、と以外のすべての戻り値を無視しましょうSQLITE3_DONE。
の戻り値が である限り、sqlite3_step()すべてSQLITE3_ROWの結果を取得するまで呼び出し続ける必要があります。その場合、最後の戻り値は になりますSQLITE3_DONE。
結果をstd::vectorusingに入力していますpush_back()。
私が読んだことから、ベクトルの内部配列のサイズ変更により、これは O(log(n)) の平均複雑さを持つ必要があります。この複雑さを O(1) に減らすにはreserve()、実行する前にベクトルを使用する必要がありますpush_back()。
しかし、sqlite3 API からは、取得する結果の合計数を返す関数を確認する前に確認できませんsqlite3_step()。
sqlite3でこれを行うにはどうすればよいですか?