将尺寸标注添加到C++;阵列? 是否可以在C++中动态添加数组或向量的维数?人们通常如何处理这个问题?还有,是否有一个STL容器可以让我们实例化一个具有N维的数组(比如说,如果我有一个类,它有一个包含多维数据的成员,但在类实例化之前我不知道维度的数量)。可能是这样的: vector<int> ndim_vector = {20 10 50}; some_container<double> c( ndim_vector ); vector ndim_vector={20 10 50}; 一些容器c(ndim_向量);
您可以编写一个类来做类似的事情。例如,提供了N维矩阵。然而,STL中没有这样的东西。您可以构建自己的类,这些类可以从STL容器实现这种行为。Boost库项目还提供了一个 您可以编写一个类来做类似的事情。例如,提供了N维矩阵。然而,STL中没有这样的东西。您可以构建自己的类,这些类可以从STL容器实现这种行为。Boost库项目还提供了一个 标准不包括该容器。但包括将尺寸标注添加到C++;阵列? 是否可以在C++中动态添加数组或向量的维数?人们通常如何处理这个问题?还有,是否有一个STL容器可以让我们实例化一个具有N维的数组(比如说,如果我有一个类,它有一个包含多维数据的成员,但在类实例化之前我不知道维度的数量)。可能是这样的: vector<int> ndim_vector = {20 10 50}; some_container<double> c( ndim_vector ); vector ndim_vector={20 10 50}; 一些容器c(ndim_向量);,c++,multidimensional-array,C++,Multidimensional Array,您可以编写一个类来做类似的事情。例如,提供了N维矩阵。然而,STL中没有这样的东西。您可以构建自己的类,这些类可以从STL容器实现这种行为。Boost库项目还提供了一个 您可以编写一个类来做类似的事情。例如,提供了N维矩阵。然而,STL中没有这样的东西。您可以构建自己的类,这些类可以从STL容器实现这种行为。Boost库项目还提供了一个 标准不包括该容器。但包括头文件及其关联的类和模板类valarraytemplate类是一维的,但是使用gslice模拟多维行为并不困难。动态添加将需要更多的工作
头文件及其关联的类和模板类valarray
template类是一维的,但是使用gslice
模拟多维行为并不困难。动态添加将需要更多的工作
无论如何,所有这些特性都需要封装到您自己的类中。。。或者使用Ralh Tandetzky建议的替代品。标准不包括该容器。但包括
头文件及其关联的类和模板类valarray
template类是一维的,但是使用gslice
模拟多维行为并不困难。动态添加将需要更多的工作
无论如何,所有这些特性都需要封装到您自己的类中。。。或者使用Ralh Tandetzky建议的替代方案。简短的回答是“不”,你不能这样做。我很难理解当代码不知道容器内容有多少维度时,您将如何在程序中使用它。您不能只使用一个一维向量并将其调整为元素总数吗?您还可以看看如何使用N维数组您肯定可以编写一个容器来实现这一点。[2] [3]将分配6,并适当处理索引。如果将其更改为[2][3][4],则将重新分配到24,并且必须将旧元素重新组织到数组中的新位置。@Dave但是使用数组的代码必须知道维度。所以不需要动态维度,简单的回答是“不”,你不能这么做。我很难理解当代码不知道容器内容有多少维度时,您将如何在程序中使用它。您不能只使用一个一维向量并将其调整为元素总数吗?您还可以看看如何使用N维数组您肯定可以编写一个容器来实现这一点。[2] [3]将分配6,并适当处理索引。如果将其更改为[2][3][4],则将重新分配到24,并且必须将旧元素重新组织到数组中的新位置。@Dave但是使用数组的代码必须知道维度。所以不需要动态维度。我不熟悉ValSube是C++的新东西,但是它听起来非常接近我所寻找的。谢谢你的信息。我不熟悉ValSube是C++的新东西,但是听起来很接近我所寻找的。谢谢你提供的信息。