std::对向量的向量进行变换
std::transform on vector of vector
我想对向量的向量应用std::变换。这个转换应该执行从std::vector<std::vector<Told>>
到std::vector<std::vector<Tnew>>
的转换。
我尝试了以下方法,结果成功了:
std::vector<std::vector<Told>> source;
//fill source
std::vector<std::vector<Tnew>> dest;
dest.reserve(inliers_pairs.size());
std::transform(begin(source), end(source), std::back_inserter(dest), [](std::vector<Told>& item){
std::vector<Tnew> new_item;
new_item.reserve(item.size());
std::transform(begin(item), end(item), std::back_inserter(new_item), [](Told& inner_item){
return get_Tnew_from_Told(inner_item);
});
return new_item;
});
有没有一种直接的方法可以在一次转换中做到这一点?更干净的方式?效率更高?
如果定义转换运算符并不能有效地破坏类设计,并可能在其他地方引发错误/问题。一种选择是在Tnew类中定义一个转换构造函数:
class Tnew {
// ...
public:
Tnew() = default;
Tnew(Told const &tn);
^^^^^^^^^^^^^^^^^^^^^
// ...
};
然后:
std::vector<std::vector<Told>> source;
std::vector<std::vector<Tnew>> dest(source.size());
std::transform(source.begin(), source.end(), dest.begin(),
[](std::vector<Told> const &v){ return std::vector<Tnew>(v.begin(), v.end()); });
实时演示
相关文章:
- 写入向量<向量<bool>>
- 函数向量_指针有不同的原型,我可以构建一个吗
- std::向量与传递值的动态数组
- 将值指定给向量(2D)的向量中的某个位置
- 找不到成员对象:没有名为get_event()的成员,也处理多态性和向量
- 如何使用向量的template_back函数
- 尝试通过多个向量访问变量时,向量下标超出范围
- 平面缓冲区可以利用向量中的 0 吗?还是其他小波比哈尔变换更好?
- 如何在 c++ 中将变换与对的向量一起使用
- 如何在 CPU 上计算向量变换?
- 可视化:如何使用R&T向量仿射变换Point3D?
- 更改std中的向量::在同一向量上变换
- 使用“变换”创建增加的向量
- 使用变换和加 () 对向量的元素进行求和和模 10^9+7<int>。有什么办法可以做到这一点吗?
- C++指针的变换向量
- std::对向量的向量进行变换
- 将 RANSAC 应用于向量<Point2f>以进行相似性变换
- 在c++中变换向量的向量
- 对包含特征向量的矩阵应用变换的更简便的方法
- std::变换一个向量