int dArray[1600][32];
vector < vector <int> > dVector;
n= 1600; k = 32
dVector.resize(n);
for(int i = 0 ; i < n ; ++i){
dVector[i].resize(k);
}
std::copy ( dArray, dArray + tmp_c, std::back_inserter (dVector));
Run Code Online (Sandbox Code Playgroud)
我如何使用std :: copy(或任何其他函数)将多维数组复制到向量,反之亦然?
您不能直接执行此操作,而是需要中间步骤。根据您的要求,类似的东西vector_wrapper可能适合您
#include <vector>
template<typename T, int N> struct vector_wrapper {
vector_wrapper(T (&a)[N]) {
std::copy(a, a + N, std::back_inserter(v));
}
std::vector<T> v;
};
int dArray[1600][32];
std::vector<vector_wrapper<int, 32> > dVector;
int main(int argc, char **argv)
{
std::copy(dArray, dArray + 1600, std::back_inserter(dVector));
return 0;
}
Run Code Online (Sandbox Code Playgroud)