只将std :: vector的struct成员传递给函数(C++)

Shi*_*bli 0 c++ struct function vector

我有一个结构:

struct myStruct {

    // there are other members as well
    float U, V, W;
}
std::vector <myStruct> myVec;
myVec.resize(num);
Run Code Online (Sandbox Code Playgroud)

我想只将myVec [].U传递给所有myVec函数.

Ste*_*sop 5

将一对迭代器传递给函数:

struct pick_U : std::unary_function<myStruct&, float&> {
    float &operator()(myStruct &ms) const { return ms.U; }
};

your_function(
    boost::make_transform_iterator(myVec.begin(), pick_U()),
    boost::make_transform_iterator(myVec.end(), pick_U()),
    ... other args ...
};
Run Code Online (Sandbox Code Playgroud)

然后your_function可以迭代浮点数.