gpt4 book ai didi

c++ - n维 vector

转载 作者:可可西里 更新时间:2023-11-01 15:04:22 24 4
gpt4 key购买 nike

假设我想声明一个 vector 的 vector 的 vector ...(最多 n 维)。

像这样:

using namespace std;
// for n=2
vector<vector<int> > v2;
// for n=3
vector<vector<vector<int> > > v3;
// for n=4
vector<vector<vector<vector<int> > > > v3;

有没有办法通过模板元编程对任意 n 执行此操作?

最佳答案

是的,而且非常简单。

与归纳证明非常相似,我们设置了一个递归案例和一个结束递归的(部分专用的)基本案例。

template<size_t dimcount, typename T>
struct multidimensional_vector
{
typedef std::vector< typename multidimensional_vector<dimcount-1, T>::type > type;
};

template<typename T>
struct multidimensional_vector<0,T>
{
typedef T type;
};

multidimensional_vector<1, int>::type v;
multidimensional_vector<2, int>::type v2;
multidimensional_vector<3, int>::type v3;
multidimensional_vector<4, int>::type v4;

关于c++ - n维 vector ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13105514/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com