复制将 json-容器分配给矢量

Copy assign json-Container to vector

本文关键字:分配 json- 复制      更新时间:2023-10-16

我正在尝试将json容器从用于现代C++的 JSON 的 JSON 转换为vector,但它不适用于=运算符(我收到编译器错误"多个运算符"="匹配这些操作数"(。

一个最小的工作示例:

#include "json.hpp"
using json = nlohmann::json;
using namespace std;
int main()
{
    vector<double> v = { 0 , 10 , 20 , 100 };
    json j(v);
    vector<double> copy = j;
    vector<double> copyWithAssign;
    //copyWithAssign = j; // more than one operator "=" matches these operands
    return 0;
}

你可以在这里找到json.hpp。

将构造函数与vector<double> copy = j;一起使用,我可以写copyWithAssign = copy;但这似乎很愚蠢。必须有一种直接的方法将j分配给之前已声明和构造的vector

我认为强制转换可能会有所帮助,因为编译器无法决定使用哪种类型。我试了(vector<double>)j,但这没有帮助。

应该使用

copyWithAssign = j.get<vector<double>>();

感谢Theodelrieu,他在这里发布了这个答案。