复制 assign json-Container 到 vector

Copy assign json-Container to vector

我正在尝试将 json-Container 从 JSON-library JSON for Modern C++ 转换为 vector,但它不适用于 =-运算符(我收到编译器错误 "more than one operator "=" 匹配这些操作数")。

一个最小的工作示例:

#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,但没有用。

应该使用

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

感谢发布此答案的 theodelrieu here