在C++中,是否可以生成一个深度(维度)等于用户定义输入的嵌套向量?例如,如果用户输入值为2的整数,则一个程序可能会创建一个类型的对象vector< vector< vector<int> > >.显然,有许多其他方法可以轻松地在C++中实现类似的行为,但我纯粹感兴趣的是,是否可以实际生成任意嵌套的向量.最初,我认为这将是相当微不足道的,但我的实现都以相当奇怪的方式失败了.
#include<iostream>
#include<vector>
using namespace std;
template<typename A> void vec_print(vector<A> in){
cout << "{";
for(typename vector<A> :: iterator i = in.begin(); i != in.end(); ++i){
cout << *i << ", ";
}
cout << "}" << endl;
}
template<typename B> void vec_print(vector< vector<B> > in){
cout << "{";
for(typename vector< vector<B> > :: iterator i = in.begin(); i != in.end(); ++i){
vec_print(*i); cout << ", ";
}
cout << "}" << endl;
}
template<typename …Run Code Online (Sandbox Code Playgroud)