据我所知,向量保证是连续的,我可以向它写入一大块内存并用它发送 fwrite。我需要做的就是确保我调用 .resize() 来强制它成为我需要的最小长度,然后我可以将它用作普通的 char 数组?这段代码是否正确
v.resize(numOfElements);
v.clear(); //so i wont get numOfElements + len when i push back
vector<char>v2;
v2.resize(numOfElements*SizeOfType);
while(...)
{
...
v.push_bacK(x);
}
compress(&v2[0], len, &v[0], len);
fwrite(&v2[0], ....)
请注意,我从不推回或弹出 v2,我只调整一次大小并将其用作 char 数组。这会安全吗?如果我也倾倒了 v 那也是安全的(我确实推回并清除,我可能会倾倒它进行测试)