cp首选项states ...
范围库是算法和迭代器库的扩展和泛化,通过使它们可组合且不易出错而使它们更强大。
该库创建并操作范围视图,即间接表示可迭代序列(范围)的轻量级对象。
它提到了使用范围视图,作为cppreferencestates,
范围概念定义了类型的要求,该类型通过提供表示范围元素的迭代器和标记来允许在其元素上进行迭代。
但是从外部的Angular 看,它看起来就像是一个带有concept
的迭代器的 Package 器,所以问题如下:
- 这真的是全部吗?
- 使用范围库解决的常规迭代器有什么问题(代码示例将被欣赏)?
- 什么时候用呢?
- 这是怎么回事:
std::vector <int> v { 1, 2, 3, 4, 5 };
std::for_each(v.begin(), v.end(), [](const int& i) { std::cout << i << " "; });
是否与此不同:
std::ranges::for_each(v, [](const int& i) { std::cout << i << " "; });
(除了略短的形式)
2条答案
按热度按时间ekqde3dh1#
第二种方法允许您将只存在于range头中的其他操作进行管道传输,这对于可组合性来说要好得多:
lmvvr0a82#
使用范围库解决的常规迭代器有什么问题(代码示例将被欣赏)?
这样可以避免临时容器的一些错误: