我有一个 std::vector。我想将 vector 的内容复制到一定大小的 char* 缓冲区中。
有安全的方法吗?
我可以这样做吗?
memcpy(buffer, _v.begin(), buffer_size);
还是这个?
std::copy(_v.begin(), _v.end(), buffer); // throws a warning (unsafe)
还是这个?
for (int i = 0; i < _v.size(); i++)
{
*buffer = _v[i];
buffer++;
}
谢谢..
最佳答案
std::copy(_v.begin(), _v.end(), buffer);
这是在 C++ 中执行此操作的首选方法。如果 buffer
足够大,以这种方式复制是安全的。
关于c++ - 将 std::vector<char> 的内容复制到 char* 缓冲区中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8047854/