本博客http://blog.youkuaiyun.com/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