当前位置:  开发笔记 > 编程语言 > 正文

增强范围库:按顺序遍历两个范围

如何解决《增强范围库:按顺序遍历两个范围》经验,为你挑选了1个好方法。

Boost范围库(http://www.boost.org/doc/libs/1_35_0/libs/range/index.html)允许我们将一对迭代器抽象为一个范围.现在我想将两个范围合并为一个,即:

给定两个范围r1和r2,定义r遍历[r1.begin(),r1.end()[然后[r2.begin(),r2.end()[.有没有办法使用r1和r2将r定义为范围?



1> amit..:

我再次需要这个,所以我再看看.有一种方法可以使用boost/range/join.hpp来连接两个范围.不幸的是,输出范围类型不包含在界面中:

#include "boost/range/join.hpp"
#include "boost/foreach.hpp"
#include 

int main() {
        int a[] = {1, 2, 3, 4};
        int b[] = {7, 2, 3, 4};

        boost::iterator_range ai(&a[0], &a[4]);
        boost::iterator_range bi(&b[0], &b[4]);
        boost::iterator_range<
           boost::range_detail::
           join_iterator > ci = boost::join(ai, bi); 

        BOOST_FOREACH(int& i, ci) {
                std::cout << i; //prints 12347234
        }
}

我使用编译器消息找到了输出类型.C++ 0x auto也与此相关.

推荐阅读
携手相约幸福
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有