1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
| class CTest {
public:
CTest(int Value,int Id) : value(Value),id(Id) {};
int id;
int value;
};
std::vector<CTest*> vec;
vec.push_back(new CTest(4,7));
vec.push_back(new CTest(4,1));
//I want an iterator that I could use like iter->id / iter->value and
not (*iter)->id / (*iter)->value
struct SPredicate {
bool operator()( C& x) {
return (-1 < x.id);
}
};
typedef boost::filter_iterator<SPredicate, CTest*> FilterIterator;
FilteredIterator end(*vec.end());
for(FilteredIterator iter(*vec.begin());start != end; iter++){
std::cout << "id" << iter->id << "\tValue" << iter->m << std::endl;
} |
Partager