【发布时间】:2015-05-21 11:24:47
【问题描述】:
说我有
struct S {
double A;
double B;
double C;
};
和
std::vector<S> vecS(10);
我正在尝试编写一个通用函数void F(std::vector<S> vecS,structure S.x),以便可以进行以下计算
F(std::vector<S> vecS, structure S.x) {
for(i=1;i<10;i++)
vecS[0].x += vecS[i].x;
// note the structure does not have memeber "x"
// I want to give that as a generic input to access A,B or C
}
上面的代码不是正确的代码,但我只是想演示我要计算的内容。
我要计算的是循环遍历特定元素的结构向量。这可能以一种简单的好方法吗?有人可以给我一些指示如何以通用方式访问结构的成员(也许这就是我编写这个函数所需要的)。
提前致谢。
【问题讨论】:
-
这有点像stackoverflow.com/a/3205057/667798 - 我建议使用提取所需成员变量的 lambda 表达式对向量执行
accumulate。
标签: c++ pointer-to-member