3
|
bremen_matt · 技术社区 · 6 年前 |
![]() |
1
2
这是一个模板,它使用给定的步骤大小执行迭代,并在每次增量之后检查终止条件。它还调用带有未引用迭代器的函数。
这应该适用于任何非随机访问迭代器,例如
或者,例如,使用输入迭代器。
|
![]() |
2
2
微不足道的回答: 代替
通过
. 在for循环增量中。 因为唯一的检查方法 如果你已经过去 无序流形中的一个元素是在每个步骤中检查的。这就是模加密的密码学优势所在。 如果你接到一个订单,但不知道它是正向的还是反向的,你可以在开始时检查
让比较依赖于那个bool,比如
但这并不是直接的,也不会在完全无序的迭代器上工作,所以我更喜欢以前的方式。 |
![]() |
3
1
跳跃多个元素的真正大问题是 不 您正在寻找的测试——它避免了迭代器的增量超过容器的末尾(这是未定义的行为)! 以下情况:
是的,我甚至跳过了
将迭代器增加到向量末尾以外!尽管那可能 似乎 要运行良好,它仍然是未定义的行为。 如果您想要一个基于迭代器的通用解决方案,那么您需要知道还有多少元素:
当然,这只适用于随机访问迭代器。但是如果我们用
为了简单性/可维护性,您可能希望继续使用。
单独:对于非RA迭代器,您需要这样做
如果你需要更多的时间,你可以把这个搬到你自己的地方。
只要我们没有
|
![]() |
AstralHex · 矩阵乘法代码工作不正常 6 月前 |
![]() |
Fishie · 作为类成员的智能指针是否仍然自动释放?[关闭] 6 月前 |
![]() |
Die4Toast · 递归调用成员箭头运算符-> 6 月前 |
![]() |
Anka Hanım · 关于结构和动态数组地址的问题 6 月前 |