Ben*_*hoo 5 c++ foreach standards stl
例如:
v.for_each([](int i) { printf("%d\n", i); });
Run Code Online (Sandbox Code Playgroud)
如果比常用的更优雅和可读:
std::for_each(v.begin(), v.end(), [](int i) { printf("%d\n", i); });
Run Code Online (Sandbox Code Playgroud)
标准中是否缺少这样的成员函数的正当理由?
这是整个库的标准设计原理:将容器与算法分开.
如果按照自己的方式进行操作,则必须为每个容器Y实现每个功能X,如果您有M个功能和N个容器,则可以使用M*N实现.
通过使用迭代器和make算法处理迭代器而不是容器,您只需要实现M算法和N迭代器接口.
这种分离也意味着您拥有无限广泛的应用范围:算法不仅可以用于每个库容器,而且可以用于任何容器,无论是现在还是将来,任何人都决定编写并配备迭代器.有限与无限重用是一个非常有力的论据!通过通用的免费接口调用算法不会增加任何成本.
归档时间: |
|
查看次数: |
237 次 |
最近记录: |