Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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
Rust 如何在Vec上创建迭代器<;Vec<;T>&燃气轮机;大小未知,相当于内部向量上迭代器的笛卡尔积<;T>;s_Rust_Iterator_Generator - Fatal编程技术网

Rust 如何在Vec上创建迭代器<;Vec<;T>&燃气轮机;大小未知,相当于内部向量上迭代器的笛卡尔积<;T>;s

Rust 如何在Vec上创建迭代器<;Vec<;T>&燃气轮机;大小未知,相当于内部向量上迭代器的笛卡尔积<;T>;s,rust,iterator,generator,Rust,Iterator,Generator,我想设计一个类似于示例的函数,只是在我的例子中,ipproduct的参数数量在编译时是未知的。正如前面所解释的,用python很容易做到这一点 我试过使用itertools板条箱,特别是iproduct,多笛卡尔产品和笛卡尔产品但目前正在与类型系统进行斗争,并且不确定它是否是正确的路径 pub fn产品列表(列表:&Vec)->std::slice::Iter` 找到类型`itertools::Adapters::Product>` =注意:此错误源于当前板条箱外部的宏(在夜间构建中,使用-Z外

我想设计一个类似于示例的函数,只是在我的例子中,
ipproduct
的参数数量在编译时是未知的。正如前面所解释的,用python很容易做到这一点

我试过使用
itertools
板条箱,特别是
iproduct
多笛卡尔产品
笛卡尔产品
但目前正在与类型系统进行斗争,并且不确定它是否是正确的路径

pub fn产品列表(列表:&Vec)->std::slice::Iter`
找到类型`itertools::Adapters::Product>`
=注意:此错误源于当前板条箱外部的宏(在夜间构建中,使用-Z外部宏反向跟踪运行以获取更多信息)
答案已经给出:

使用itertools::itertools;//0.8.0
pub fn列表的乘积(列表:&[Vec])->impl迭代器{
//在列表之间生成交叉乘积
断言!(lists.len()>2);
lists.iter().map(| x | x.iter()).multi_笛卡尔积()
}

使用itertools::itertools;//0.8.0
pub fn产品列表>
哪里
L:迭代器,
I:输入迭代器