c++ store vector<vector<float>> in file and reverse
来源:互联网 发布:英雄杀红盾探宝数据 编辑:程序博客网 时间:2024/05/13 04:24
方案来源:
https://stackoverflow.com/questions/15707537/how-to-save-vectorvectorvectorfloat-in-a-file-and-retrieve-data
解决方法:
#include <boost/archive/binary_iarchive.hpp>#include <boost/archive/binary_oarchive.hpp>#include <boost/serialization/string.hpp> #include <boost/serialization/export.hpp> #include <boost/serialization/vector.hpp>#include <boost/serialization/list.hpp>void saveFeaturesFile(vector<vector<float>> &features, string filename){ ofstream out(filename.c_str()); stringstream ss; boost::archive::binary_oarchive oa(ss); oa << features; out << ss.str(); out.close(); }void loadFeaturesFile(vector<vector<float>> &features, string filename){ ifstream in(filename.c_str()); boost::archive::binary_iarchive ia(in); ia >> features; in.close();}
同时再编译过程中加入相应的boost库
ex:g++ -std=c++11 -o test Test.cpp **-L/usr/local/lib -lboost_iostreams -lboost_serialization**
方法2:
void saveVector(std::string path, const vector<vector<float> >& myVector){ std::ofstream FILE(path, std::ios::out | std::ofstream::binary); // Store size of the outer vector int s1 = myVector.size(); FILE.write(reinterpret_cast<const char *>(&s1), sizeof(s1)); // Now write each vector one by one for (auto& v : myVector) { // Store its size int size = v.size(); FILE.write(reinterpret_cast<const char *>(&size), sizeof(size)); // Store its contents FILE.write(reinterpret_cast<const char *>(&v[0]), v.size()*sizeof(float)); } FILE.close(); }void readVector(std::string path, vector<vector<float> >& myVector){ ifstream FILE(path, std::ios::in | std::ifstream::binary); int size = 0; FILE.read(reinterpret_cast<char *>(&size), sizeof(size)); myVector.resize(size); for (int n = 0; n < size; ++n) { int size2 = 0; FILE.read(reinterpret_cast<char *>(&size2), sizeof(size2)); float f; for ( int k = 0; k < size2; ++k ) { FILE.read(reinterpret_cast<char *>(&f), sizeof(f)); myVector[n].push_back(f); } }}
来源:https://stackoverflow.com/questions/43230542/write-vectorvectorfloat-to-binary-file
以上两种方法,具体消耗时间未测试。
序列化资料:
https://www.ibm.com/developerworks/cn/aix/library/au-boostserialization/
http://blog.csdn.net/lanxuezaipiao/article/details/24845625
阅读全文
0 0
- c++ store vector<vector<float>> in file and reverse
- c++<vector>AND<array>
- C++vector<vector<double>> and opencv Mat
- VECTOR in C++:二维数组
- c plus STL and vector
- Difference between Vector and ArrayList in java?
- List, Set, Vector and Map in Java
- Difference between ArrayList and Vector In java
- c++ vector反转reverse
- vector反转reverse
- C++ Vector And cocos2d Vector
- A Generic vector implementation in C
- Array vector string and C str
- C++Vector
- c++vector
- c++:vector
- <C++>vector
- C++vector
- Spring Boot HTTP over JSON 的错误码异常处理
- 转:java学习笔记之——StringUtils.join()
- linux服务器CPU 高的排查过程
- python3实现决策树算法
- Windows上使用GN&Ninja编译Chromium通用参数配置
- c++ store vector<vector<float>> in file and reverse
- VMware虚机静态MAC地址
- boost库学习之bind的常见用法
- CTO、技术总监和技术经理有啥区别?
- PHP二维数组按值中的值指定排序
- C语言的结构体使用
- QoS基础及技术原理——3
- 树莓派的按键中断
- 2017.11.8考试总结