1

我需要分配一个二维字符串数组来将查询结果返回给调用者。查询可能类似于

   Select * from files where size > x 

我需要分配的二维数组类似于

   std::string [x][y]; 

我知道列数,但我当然不知道有多少行将匹配查询。我必须事先分配内存来放置结果集。

我知道我可以像这样执行单独的查询,但这是一种矫枉过正的做法,应该没有必要执行单独的查询。

   select count(*) from files where size > x

也许我可以重新考虑一个更动态的 2D 数据结构来推动结果?我不确定有什么想法?

4

1 回答 1

1

为什么不使用std::vector < std::vector < std::string > >? 那一个可以动态增长,并且可以通过 轻松检查行数vector.size()

根据您执行查询的方式,sqlite 会告诉您返回的行数。例如,请参见此处sqlite_get_table()http ://www.sqlite.org/c3ref/free_table.html 。它返回 中的行数*pnRow

于 2013-01-24T19:28:59.957 回答