|
|
1
2
你几乎完全描述了 LINQ 这是一个。NET 3.5特性,因此您应该能够从C++使用它。 |
|
|
2
4
您所描述的功能通常出现在支持闭包、谓词、functor等概念的函数式语言中。 上面代码的问题在于它结合了:
实际上,(1)和(3)是样板,因为每次你需要迭代一个集合,将一些元素复制到另一个集合时,每次可能只有条件代码会改变。支持函数式编程的语言消除了这种样板。例如,在Groovy中,您可以将上面的For循环替换为
尽管C++不是函数式语言,但可能有一些库支持使用STL集合进行函数式编程。例如,Apache commons集合(也可能是谷歌的集合库)为Java集合的函数式编程提供了支持,尽管Java本身不是函数式语言。 |
|
|
4
3
使用Boost。迭代器库,用于编写一个“选择”迭代器,例如,一个跳过所有不满足给定谓词的元素的迭代器。 http://www.boost.org/doc/libs/1_39_0/libs/iterator/doc/filter_iterator.html 无论如何,在C++中,基本上可以通过分层迭代器来实现相同的效果。 如果你有一个常规迭代器,它访问序列中的每个元素,你可以把它包装在一个过滤迭代器中,过滤迭代器会递增底层迭代器,直到它找到一个满足条件的值。然后,您甚至可以将其包装在一个“选择”迭代器中,将值转换为所需的格式。 这似乎是一个相当明显的想法,但我不知道它的任何完整实现。 |
|
|
5
1
STL algorithms
BerkelyDB NetCDF , HDF5 , STXXL 等等。文件访问速度很慢,但这样做可以处理超出内存容量的数据。 |
|
|
6
1
现在,您可以从以下内容进行迭代
如果你想在不实际连接到数据库的情况下获得更能唤起SQL的东西,你应该看看
Boost
尤其是
|
|
AstralHex · 矩阵乘法代码工作不正常 1 年前 |
|
|
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 1 年前 |
|
|
Die4Toast · 递归调用成员箭头运算符-> 1 年前 |
|
|
Anka Hanım · 关于结构和动态数组地址的问题 1 年前 |