Push_back一组(异构)向量的实现
Push_back implementation for a (heterogenous) set of vectors
假设我有一个结构(或类(,如下所示:
struct _particle {
std::vector<float> vx , vy;
std::vector<int> id;
std::vector<double> rx, ry;
};
typedef struct _particle particle;
particle p;
这是数组(向量(的结构。现在我想push_back一个粒子,给定的vx,vy,id,rx,ry数据值。天真地,我会对粒子对象中的每个向量应用push_backp
。
p.vx.push_back(vx_val); p.vy.push_back(vy_val); ...
但这意味着任何希望添加新字段(新向量(的开发人员都必须在每次需要添加新粒子数据时手动添加push_back
调用。
是否可以以这样一种方式实现push_back
,即它循环遍历particle
结构中的所有元素并添加到向量的尾部?
我能够解决这个问题的唯一方法是在particle
结构中创建对向量的引用列表。但这更像C,可能不是C++的风格。有没有一种标准/整洁的方法来实现这一目标?
无论你尝试什么,你都必须跟踪成员名称及其类型。因此,您不能有一个方法会自动将push_back
添加到新成员。
我能想到的一种简单的方法是将指向成员的指针存储在元组中,并使用带有参数包的函数来遍历指针并全部推回。这将保存push_back但在添加新成员时仍需要向元组添加新指针。
相关文章:
- 为共享 ptr 向量实现复制 c'tor?
- C++:实现向量和矩阵类的最佳结构
- priority_queue使用降序向量实现最小堆的语法差异
- 布尔向量实现
- C++ 使用向量实现合并排序
- 如何为向量实现 std::erase ?
- 如何使用指针向量实现类析构函数 C++.
- 为对象向量实现快速排序算法
- 为什么这个普通的数组实现比STD ::向量实现性能慢
- C++向量实现push_front错误
- 使用向量 c++ 实现 trie 时的分割错误
- C++ 向量实现 - 移动构造函数 - 移动与前进
- 不使用外部库的稀疏向量实现建议
- 大多数数据结构都可以使用向量实现吗?
- 为简单向量实现复制构造函数
- 如何在c++中使用向量实现一个简单的树,没有二进制或avl树
- 堆排序从介绍到算法在c++中使用向量实现
- 使用指针向量实现 Dijkstra 算法
- 如何使用向量实现bubblesort
- 希望使用向量实现更好的c++堆栈