Boost logo

Boost :

Subject: Re: [boost] Search a vector of tuples?
From: Robert Jones (robertgbjones_at_[hidden])
Date: 2012-04-12 04:36:30


On Wed, Apr 11, 2012 at 11:33 PM, Robert Dailey <rcdailey.lists_at_[hidden]>wrote:

> Is there a method in the boost library to iterate a vector of boost::tuple
> objects, comparing the 1st element in the tuple of each tuple to a value
> that I specify? My tuple is setup like so:
>
> typedef boost::tuple<int, int, char const*> Tuple;
> typedef std::vector<Tuple> ErrorStringMap;
>
> ErrorStringMap mystrings = tuple_list_of
> (10, "10", "ten")
> (20, "20", "twenty")
> (30, "30", "thirty")
> (10, "10", "ten");
>
> I want to search the vector of tuples and do something with every tuple
> that has the number 10 as the first element in the tuple.
>
>
*** Not Tested or Compiled ***

#include <boost/range.hpp>
#include <boost/range/adaptors/filtered.hpp>
// ... and maybe some other range headers
#include <boost/bind.hpp>

for_each( mystrings | boost::adaptors::filtered( boost::bind( get<0>, _1 )
== 10 ), yourAction );

Just off the top of my head, no idea if that will really work.

HTH

- Rob.


Boost list run by bdawes at acm.org, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk