Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/140.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何将boost::combine限制为至少两个范围_C++_Boost - Fatal编程技术网

C++ 如何将boost::combine限制为至少两个范围

C++ 如何将boost::combine限制为至少两个范围,c++,boost,C++,Boost,发现以下故障源只需花费我大约4小时的工作: #include <boost/range/combine.hpp> #include <boost/foreach.hpp> #include <iostream> #include <vector> #include <list> int main(int, const char*[]) { std::vector<int> v; std::list<c

发现以下故障源只需花费我大约4小时的工作:

#include <boost/range/combine.hpp>
#include <boost/foreach.hpp>
#include <iostream>
#include <vector>
#include <list>

int main(int, const char*[])
{
    std::vector<int> v;
    std::list<char> l;
    for (int i = 0; i < 5; ++i)
    {
        v.push_back(i);
        l.push_back(static_cast<char>(i) + 'a');
    }

    v.push_back(5);

    int ti;
    char tc;
    BOOST_FOREACH(boost::tie(ti, tc), boost::combine(v, l))
    {
        std::cout << '(' << ti << ',' << tc << ')' << '\n';
    }

    return 0;
}
#包括
#包括
#包括
#包括
#包括
int main(int,const char*[])
{
std::向量v;
std::列表l;
对于(int i=0;i<5;++i)
{
v、 推回(i);
l、 推回(静态施法(i)+“a”);
}
v、 推回(5);
int-ti;
char-tc;
增压器(增压器:tie(ti,tc),增压器:联合收割机(v,l))
{

std::你可以使用容器,但前提是这两个容器都是随机访问的。老实说,我宁愿在这一点上直接使用迭代器。我想这在某种程度上是有意义的,因为在任何一点上,内部“当前”迭代器元组都不等于“结束”迭代器元组。这会导致此处显示的错误,但应该在文档中非常清楚,而不仅仅是通过显示使用等长度范围。。。