有没有一种简单的方法将2D /多维数组转换为c ++中的向量?

时间:2016-11-21 21:05:46

标签: c++ arrays multidimensional-array stl

我已经找到了这个问题的一个很好的答案,但一直找不到。我找到了following question,但它没有回答下面的问题(这个问题涉及将2D数组转换为矢量,而不仅仅是一维数组):

我有以下函数将2D数组作为双指针传递,并且数组中第一个和第二个索引的尺寸:

std::vector<std::vector<float>> ConvertToVector(const float **a_data,
  const int a_d1, const int a_d2)

我想将a_data转换为2D矢量并返回矢量。到目前为止,我唯一的解决方案是逐步遍历数组第一维中的每个元素,并按如下方式推回每个元素:

std::vector<std::vector<float>> dataVec;
for (int i=0; i<a_d1; i++)
{
  std::vector<float> v(a_data[i], a_data[i]+a_d2);
  dataVec.push_back(v);
}
return dataVec;

是否有比这更简单/更优雅的解决方案?

0 个答案:

没有答案