多个vector排列组合成一个vectorc++怎么写
时间: 2024-01-04 14:20:03 浏览: 161
可以使用嵌套循环的方式将多个vector排列组合成一个vector。下面是一个示例代码:
```cpp
#include <iostream>
#include <vector>
std::vector<std::vector<int>> combineVectors(const std::vector<std::vector<int>>& vectors) {
std::vector<std::vector<int>> result;
std::vector<int> temp;
// 计算结果的大小
int size = 1;
for (const auto& vec : vectors) {
size *= vec.size();
}
result.resize(size);
// 嵌套循环进行排列组合
int repeat = 1;
for (const auto& vec : vectors) {
int count = 0;
for (int i = 0; i < size; i++) {
result[i].push_back(vec[count]);
if ((i + 1) % repeat == 0) {
count = (count + 1) % vec.size();
}
}
repeat *= vec.size();
}
return result;
}
int main() {
std::vector<std::vector<int>> vectors =1, 2, 3}, {4, 5}, {, 7, 8}};
std::vector<std::vector<int>> combined = combineVectors(vectors);
// 输出结果
for ( auto& vec : combined) {
for (const auto& num : vec) {
std::cout << num << " ";
}
std::cout << std::endl;
}
return 0;
}
```
这段代码中,`combineVectors`函数接受一个`vectors`参数,该参数是一个包含多个vector的vector。函数通过嵌套循环的方式将这些vector进行排列组合,并将结果存储在一个新的vector中返回。
阅读全文