相关疑难解决方法(0)

新的迭代器要求

我注意到大多数(如果不是所有)容器现在都需要它们的::iterator类型LegacySomethingIterator而不是SomethingIterator.

例如,std::vector<>::iterator 现在需要:

iterator LegacyRandomAccessIterator

这似乎是大多数其它容器一样,都是需要自己迭代器从去SomethingIteratorLegacySomethingIterator.

还有"新"要求采用旧要求的名称,例如RandomAccessIterator,为什么这些要求被添加?在我看来,新的变种只会影响遗留的变种,没有差异.

为什么首先创建新的,他们的要求对我来说是一样的.为什么新的只是替换旧的要求而不是现在有两个不同的名称(例如RandomAccessIteratorLegacyRandomAccessIterator)?

c++ c++-concepts c++20

40
推荐指数
1
解决办法
3570
查看次数

范围算法和标准算法之间的区别

许多标准库算法在 C++20 中有两个版本:一个在std命名空间中,另一个在std::ranges命名空间中同名。例如,std::ranges::countstd::count都用于计算满足谓词的元素的数量。

为什么这些算法有两个版本?

c++ c++20

9
推荐指数
1
解决办法
229
查看次数

为什么range :: ostream_iterator默认可构造?

这个问题在这里的评论中进行了讨论。

在Eric Niebler的ranges-v3库(某种程度上已成为C ++ 20标准的一部分)中,它ranges::ostream_iterator默认可构造的 -没有ostream。

怎么来的?

我认为后来具有有效构造的“虚拟”构造是C ++中的反模式,我们逐渐摆脱了这种疣。std::ostream iterator 只能使用流构造(目前-在C ++ 20之前)。而且,似乎我们无法使用默认构造的东西做任何事情range::ostream_iterator。。。所以,这是怎么回事?

c++ iterator ostream range-v3 c++20

6
推荐指数
2
解决办法
147
查看次数

标签 统计

c++ ×3

c++20 ×3

c++-concepts ×1

iterator ×1

ostream ×1

range-v3 ×1