长话短说,我有一个二维矢量,我需要memcpy().如何获取指向数据结构的第一个元素的指针?
另外,鉴于它在连续内存中,我可以传入这个指针和总大小,对吗?
以下代码是否有效?
vector < vector <int> > vec;
// .. assume it's populate and built up here
int* ptr = vec[0].data(); // use this pointer
Run Code Online (Sandbox Code Playgroud)
你没有一个二维矢量,你有一个包含其他矢量的矢量.每个矢量,单独考虑,具有连续的存储,但它们不相邻 - 没有办法用一个副本做你想要的.
您可以使用Boost多维数组库将单个矢量视为二维矢量,这样您就可以立即获取整个内容.