C++ bin文件写入

问题遇到的现象和发生背景

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();