2012-04-11 12 views
1

boost::tupleオブジェクトのベクターを検索するブーストライブラリにアルゴリズムまたはヘルパーメソッドがありますか?ここに私のコードは次のとおりです。boost :: tupleのベクターを検索

typedef boost::tuple<int, char const*, char const*> Tuple; 
typedef std::vector<Tuple> ErrorStringMap; 

ErrorStringMap mystrings = tuple_list_of 
    (10, "10", "ten") 
    (20, "20", "twenty") 
    (30, "30", "thirty") 
    (40, "40", "fourty"); 

私はタプルのベクトルを検索し、タプルの最初の要素として値20を持つ最初のタプルを見つけたいです。そのタプルの2番目と3番目の要素にアクセスしたい。

+0

最初の要素で要素を参照する場合は、代わりに '(unordered_)map'を使用することを検討してください。 – GManNickG

+2

'std :: find_if'の何が問題なのですか? – ildjarn

+0

@ildjarn私は自分のファンクタを書く必要があると思います。私はブーストがすでにイテレータの代わりにタプルへの参照を返すヘルパメソッドを持っていることを期待していました(使いやすく)。私は私自身の解決策を簡単に書くことができます。私はちょうどブーストがこれを最初に何も持っていないことを確認したいと思っていました。 –

答えて

0

ildjarnは、しかし、彼は答えとして投稿していなかった、私の質問以下のコメントのリストでこれを答えたので、私は彼のためにそれを行います。

フェニックスのプレースホルダは、フェニックス::プレースホルダ::ブーストしています。また、 フェニックスを使用している場合は、適切な には、at_c < 0>(_1)== 20が含まれているため、バインドする必要はありません。

関連する問題