【发布时间】:2018-05-20 02:56:34
【问题描述】:
全部
假设我得到了数据以 cm 为单位的向量,并想构造另一个向量,但以 mm 为单位(或 mm 带移位,或 ...,所以它不是很简单)。
什么是完成这项任务的好方法?
我写了一些代码做迭代器适配器
struct scaling_iterator_adaptor {
...
};
vector v_mm{ scaling_iterator_adaptor{v_cm.begin()}, scaling_iterator_adaptor{v_cm.end()} };
有没有更好的方法来完成这样的任务?概念上的不同方式?
【问题讨论】:
-
reserve(),然后是一个简单的范围迭代,push_back() 将新值放入新向量中。我认为炮制一些奇特的转换迭代器没有多大好处。 -
@SamVarshavchik 是的,我有两行代码——reserve+for_each。也许这是一个过于复杂的......