日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

boost庫之MultiIndex

系統 2193 0

boost庫之MultiIndex_星星的小窩_百度空間

boost庫之MultiIndex

MultiIndex

?

它如同是多個STL容器的集合(vector, list, set, map, hash),能具備這一系列優點的原因是它允許多個比較謂詞,從而存在多個索引。鑒于幫助文檔中內容大多,我下面將以總結性的方式列出每頁的主要信息。

?

定義一個multiindex,通常是使用typedef,因為它的定義實在很長(這是個好習慣)

?

typedef multi_index_container <

?????? class Key,

?????? indexed_by <

????????????? ordered_unique< … >,???????????????? // 索引#0, 無重復排序

????????????? ordered_non_unique< … >, ??????? // 索引#1, 有重復的排序

????????????? sequenced<>,???????????????????????????? // #2,類list的索引方式

?????? >

> some_container;

some_container sc;

… …

?

index_by就是提供的索引方法。要獲得某個索引,使用get<N>( ),例

?

const some_container::nth_index<1>::type &name_index = sc.get<1>( ); // get返回的是引用

?

現在假如我們有一系列的單詞,想儲存在一個容器中,要求能很快得出某個單詞出現的次數,而且能按原來的順序輸出。

?

using boost::multi_index_container;

using namespace boost::multi_index;

?

vector<string>????????????? vs;

… …

typedef multi_index_container<

?????? string,

?????? indexed_by<

????????????? sequenced<>,

????????????? ordered_non_unique<identity<std::string> >

?????? >

> text_container;

text_container tc;

copy(vs.begin( ), vs.end( ), back_inserter(tc));

text_container::nth_index<0>::type& seq_index = tc.get<0>( );

copy(seq_index.begin( ), seq_index.end( ), ostream_iterator<string>(cout, “ “));????

text_container::nth_index<1>::type& seq_index = tc.get<1>( );

int t = seq_index.count(“string”);

?

看了上面的示例,大概你已經明白它到底用來干什么了。編譯這個例子通常容易出錯的是忘記加上

using boost::multi_index_container;

using namespace boost::multi_index;

取之代之為

using namespace boost;

第一個不能編譯的地方就是indexed_by未定義。indexed_by在名字空間boost::multi_index_container內,后面還有sequenced等。

?

在ordered_unique和ordered_non_unique的說明中要提供一個key extractor鍵提取器和一個可選的比較謂詞。

?

key extraction 鍵提取

?

<略>

?

MultiIndex 小結

我準備放棄這一個庫了,真的是太多太繁雜了。這個從數據庫多重索引的觀念發展出來的庫,雖然非常有用,但內容太多了

boost庫之MultiIndex


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 东丽区| 双鸭山市| 武胜县| 峡江县| 民勤县| 宣武区| 长海县| 镇康县| 江门市| 滕州市| 虹口区| 江安县| 临邑县| 香港 | 蕉岭县| 北宁市| 延边| 邹城市| 白城市| 龙陵县| 东乌珠穆沁旗| 获嘉县| 三亚市| 军事| 涞水县| 瓦房店市| 临清市| 涡阳县| 郴州市| 鄢陵县| 宁津县| 九江县| 温州市| 阜宁县| 区。| 城口县| 华蓥市| 闻喜县| 峨山| 德钦县| 渝北区|