On Mon, Aug 23, 2010 at 04:49:58PM +0100, przemyslaw.sliwa@uk.bnpparibas.com wrote:
I have the following question. I have two containers
std::setstd::string insertedEvents; std::vectorstd::string eventNames;
How I would like to copy all those elements from eventNames which are not in insertedEvents. Can this can be done somehow using the boost::bind feature?
<algorithm> contains std::set_difference, which is most probably what you want, assuming that eventNames is sorted. If it's not, std::remove_copy_if(eventNames.begin(),eventNames.end(), std::back_inserter(out), boost::bind(&std::setstd::string::count, boost::cref(insertedEvents), _1) ); That is, bind the count member function of std::set to your set of events, and evaluate that for each element in your range. Of course, something like Phoenix or Lambda would make the predicate easier on the eyes. -- Lars Viklund | zao@acc.umu.se