2012-04-11 38 views
1

在boost庫中是否有算法或幫助器方法來搜索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找到的第一個元組。我想訪問這個元組的第二和第三個元素。

+0

如果您總是通過第一個元素查找元素,請考慮使用'(unordered_)map'來代替。 – GManNickG 2012-04-11 22:38:20

+2

'std :: find_if'有什麼問題? – ildjarn 2012-04-11 22:38:38

+0

@ildjarn我相信,我必須爲它編寫自己的函子。我希望提升已經有一個幫助器方法,它會返回對元組的引用而不是迭代器(更容易處理)。我可以很容易地編寫我自己的解決方案,我只是想確保提高首先沒有任何東西。 – 2012-04-11 22:43:22

回答

0

ildjarn在我下面的問題的評論列表回答了這個,但是他並沒有張貼作爲答案,所以我會做他:

菲尼克斯太陽隊的佔位符在boost ::鳳凰::佔位符。另外,如果您使用的是Phoenix,則不需要綁定 - 適當的 包括,at_c < 0>(_ 1)== 20的作品。