复制 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。
我正在尝试将 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。