Boost组件multi_index_container组合查询实例(续3)

本文介绍了如何使用Boost库中的multi_index_container和tuple进行组合查询。通过定义不同类型的tuple来匹配multi_index_container的不同索引,实现对数据的多维度查询。示例代码展示了查询不同索引并打印匹配数据的过程。
摘要由CSDN通过智能技术生成

本博客http://blog.csdn.net/livelylittlefish 贴出作者(三二一@小鱼)相关研究、学习内容所做的笔记,欢迎广大朋友指正!

1. 引子

 

" 组合查询实例 ( 2) " 的基础上,将 query_container 模板化。这要用到 Boost 的另一个组件 tuple 。关于 tuple 的讨论,可以参考后续的文章。

 

2. query_container 函数模板

typedef boost::tuples::tuple MyTuple_X_T ;

typedef boost::tuples::tuple MyTuple_XY_T ;

typedef boost::tuples::tuple MyTuple_XYZ_T ;

 

template <typename MultiIndexContainerIterator , typename MultiIndexContainer , typename Tuple >

int query_container(const MultiIndexContainer & container, const Tuple & tuple)

{

    MultiIndexContainerIterator it0, it1;

    boost::tie(it0, it1) = container.equal_range(tuple);

 

    if (*it0 == *it1)

        return -1;

 

    while (it0 != it1)

    {

        (*it0)->print(", found");

        ++it0;

    }

    return 0;

}

 

3. 代码及运行结果

 

multiindexcontainer13.cpp

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值