Image

Imagecaracrist wrote in Imageru_cpp

Filter objects of vector by equality of any member.

то в чём вы мне помогли тут: http://community.livejournal.com/ru_cpp/357192.html

#define FindAllVector(Vector,Member,Val) FindVector(&Vector, (size_t)&reinterpret_cast<const volatile char&>(TNullPtr(&Vector)->Member),Val)


//Returns null pointer of ElementT type for vector<ElementT>

template <typename ElementT>
static ElementT * TNullPtr(vector<ElementT> * container)
{
return (ElementT*)0;
}

template <class ET, class QT>
static vector<ET> FindVector(vector<ET> * source, size_t offset, QT value)
{
vector<ET> result;
for (vector<ET>::iterator i = source->begin();i != source->end(); ++i)
{
if (*((QT*)(&(*i)+offset)) == value)
result.push_back(*i);
}
return result;
}


//Use example
/*
vector<POINT> allPoints;
vector<POINT> filter = FindAllVector(somePoints,y,156);
*/