![]() |
1
6
表达式
而不是:
|
![]() |
2
14
标准要求
这取决于迭代器实现,以确保这些语句在引擎盖下正常工作。 您不应该保留一个输出迭代器的多个副本的原因是它具有单传递语义。迭代器只能在每个值处取消引用一次(即,它必须在每个取消引用操作之间递增)。一旦迭代器被取消引用,它的副本就不能被取消引用。
这就是为什么
|
![]() |
3
1
输出迭代器的工作方式与普通迭代器不同,并且指定了它们的接口,以便在类指针表达式中使用它们。(
通常情况下,
|
![]() |
4
1
看你的评论,大部分的混淆似乎来自SGI文档,我认为这在这一点上有点误导。 复制输出迭代器会 不 使复制的迭代器无效。真正的限制非常简单:您只应该取消对输出迭代器的给定值的引用一次。但是,一次有两个副本是可以的,只要您在它们具有相同值的情况下只取消引用其中一个副本。在这样一个例子中,您取消引用一个值,然后丢弃它的值,并增加另一个值,但只有在增量发生后才取消引用它,这一切都是完美的。 |
![]() |
5
-4
迭代器不是指针吗?递增,然后取消对它的引用只会移动到下一个元素。 |
![]() |
AstralHex · 矩阵乘法代码工作不正常 4 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 4 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 4 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 4 月前 |