yml文件读写

使用开源的代码:yaml-cpp

git clone https://github.com/jbeder/yaml-cpp.git

参考网上几个简单的例子,读写yml文件还是比较简单的,但问题在于那些例子中读使用了yaml中的node,并不是读到我们希望的变量中。写也没有太多可以自己设置的地方。

所以需要我们重载一些函数满足自己的使用。

比如重载了运算符" >>",这样就可以将node中的内容赋值给vector变量。

 1 template <typename T>
 2 void operator >> (const YAML::Node& node, vector<T>& v) {
 3     
 4     int nsize = node.size();
 5     v.resize(nsize, 0);
 6     for (int i = 0; i < nsize; i++)
 7     {
 8          //node[i] >> v[i];
 9           v[i] = node[i].as<T>();
10     }
11 }

调用:

vector<int> vectmp;
node >> vectmp;

当然也可以重载”=“运算符等其他操作。

参考博客:https://blog.csdn.net/Fourier_Legend/article/details/82798297

关于yml文件的读写可以参考下面的博客:

https://blog.csdn.net/u014610460/article/details/79508869?utm_medium=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase&depth_1-utm_source=distribute.pc_relevant.none-task-blog-BlogCommendFromMachineLearnPai2-1.nonecase

https://blog.csdn.net/qq_34249583/article/details/79212776?utm_medium=distribute.pc_relevant.none-task-blog-baidujs-2

原文地址:https://www.cnblogs.com/juluwangshier/p/13140793.html