复制将json-Container分配给向量

时间:2017-06-14 11:49:23

标签: c++ json assign assignment-operator

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

最低工作示例:

#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 here

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

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

1 个答案:

答案 0 :(得分:1)

应该使用

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

积分转到发布此回答here的theodelrieu。