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