C++ 如何将vector<vector> 写入到bin文件?error: invalid cast from type 'std::vector<std::vector >' to type 'char*'
using namespace std;
ofstream ofs;
ofs.open("./out.bin",ios::out | ios::binary);
// 560*96的vector
vector<vector<float>> tar_data;
int f_elem = 0;
for (int i=0;i<560*96;i++)
{
vector<float> data;
int v = i % 96;
if (v == 0) {f_elem++;}
data = {0.0,2.34255,3.52111,float(v),float(f_elem)};
tar_data.push_back(data);
}
ofs.write(reinterpret_cast<char *>(tar_data), sizeof(tar_data));
//ofs.flush();
ofs.close()
error: invalid cast from type 'std::vector<std::vector >' to type 'char'*
编译时报错
不能直接这么写入,老老实实一个一个数据写入吧。
ofstream ofs;
ofs.open("./out.bin", ios::out | ios::binary);
// 560*96的vector
vector<vector<float>> tar_data;
int f_elem = 0;
for (int i = 0; i < 560 * 96; i++)
{
vector<float> data;
int v = i % 96;
if (v == 0) { f_elem++; }
data = { 0.0,2.34255,3.52111,float(v),float(f_elem) };
tar_data.push_back(data);
for (int j = 0; j < data.size(); j++)
ofs.write((char*)&data[j], sizeof(float));
}
//ofs.write(reinterpret_cast<char*>(tar_data), sizeof(tar_data));
ofs.close();