哪种C++概念更适合建模数据库查询 - 流或输入迭代器?

mar*_*ark 2 c++ iterator stream

我想将数据库查询视为标准C++输入迭代器.另一方面,可以将数据库查询视为查询结果项的输入流.您认为db查询的更好模型是什么 - 输入迭代器还是输入流?

就个人而言,我的印象是C++ IO流应该只对字符进行操作,在那里我从未见过任何一个流的例子,其中字符不是char或者wchar_t.我理解,流的模板化本质允许我将任何东西作为一个字符传递,所以从理论上讲,似乎我可以将查询结果项作为一个字符来处理流媒体,但我不确定它是否是一个好主意.

建议是受欢迎的.

谢谢.

Ste*_*sop 6

您用作流字符类型的任何内容都需要具有字符特征,可能还有一些与区域设置有关的内容,因为有人可能会尝试将区域设置添加到您的流中.这可能是无稽之谈,但它仍然存在于界面中,即使你犯了错误,你也可能需要把它变成一个明智的错误.

我肯定使用输入迭代器,在C++中它是一系列对象简单模型.

Streams做了很多其他的事情,只是提出了一个序列(格式化,streambuf控制,奥术错误状态模型).其中大部分可能不适用于您的数据库项目,尽管我想其中一些可能是.例如,控制数据库查询结果流的缓冲区大小是有意义的,但是来自它的格式化读取不会.

istream_iterator存在的事实证明即使你向某人提供流,他们也可能更喜欢/需要迭代器接口.