小编Con*_*gle的帖子

如何在C++中生成任意嵌套的向量?

在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)

c++ templates vector c++11 c++17

7
推荐指数
1
解决办法
519
查看次数

标签 统计

c++ ×1

c++11 ×1

c++17 ×1

templates ×1

vector ×1