【发布时间】:2019-02-28 18:25:29
【问题描述】:
如何在不使用“原始循环”的情况下获取向量的每个第 N 个元素的“地址”。 std::copy_if 似乎是一个解决方案,但我无法获取元素的地址,我只能获取值。
【问题讨论】:
-
你想如何“获取地址”?你想要一个地址向量吗?用每个地址调用一个函数?有产生每个地址的函数吗?有一个生成地址的输入迭代器吗?
-
听起来你想要skipping iterator
-
地址向量。我尝试 std::transform 但它返回所有元素,我不想在 lambda 中保存计数器和 if 语句。
-
向量存储在连续的内存范围中。因此,如果您有第一个元素
&v[0]的地址,您可以简单地将第 m-times.n 个元素计算为&v[0] + m * n * sizeof<T>,其中T是向量元素的类型。