KnowledgeHub
Questions
Tags
Users
Search
Alex Rivera
|
Logout
Edit Question
Title
Body
Consider the following: typedef struct { int a; int b; int c; int d; } ABCD; typedef std::vector<ABCD> VecABCD; Say I wanted to add up every 'a' member in a vector of type VecABCD. Easy! I just loop through the vector, and sum as I go. int CalcSumOfA(const VecABCD &vec) { int sumOfA = 0; VecABCD::const_iterator it; for(it=vec.begin();it!=vec.end();it++) sumOfA += it->a; return sumOfA; } Say I wanted to do the same thing with 'b'? Easy! I'd write....essentially the same function, but with only trivial changes. Same with 'c' and 'd'. So, is there a more concise, less repetitive way of doing this? I'd like to do something like: int sumOfA = SumOfMembers(myVec, a); but I can't conceive of how I'd put such a function together. Ideally, it'd be a template, and I could use it with a vector of any kind of structure, not specifically bound to VecABCD. Anyone have any ideas?
Tags (comma-separated)
Save Edits
Cancel