如何获取向量的每个第 N 个元素的"address"

How can I get "address" of every Nth element of a vector

本文关键字:元素 何获取 address 获取 向量      更新时间:2023-10-16

如何在不使用"原始循环"的情况下获得向量每个元素的"地址"。std :: copy_if似乎是一个解决方案,但我无法获得该元素的地址,我只能得到该值。

您可以使用std::for_each(或类似算法)使用跳过迭代器(也称为跨度迭代器)。标准库没有通用跳过迭代器。

如果您希望自己实现跳过的迭代器,那么这个想法很简单:编写一个将迭代器作为参数的模板。该模板是迭代器"适配器"。将大部分迭代器样板委员

迭代器适配器可重复使用并且现有实现可用,但简单的循环可能会更少的工作:

for(size_t i = 0; i < v.size(); i += N)