复制将 json-Container 分配给 vector

Copy assign json-Container to vector

提问人:Bambino 提问时间:6/14/2017 最后编辑:Bambino 更新时间:6/26/2017 访问量:306

问:

我正在尝试将 -Container 从现代 C++ 的 JSON 库转换为 ,但它不适用于 -运算符(我收到编译器错误“多个运算符”=“与这些操作数匹配”)。jsonvector=

最小工作示例:

#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;jvector

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

C++ JSON 分配 赋值运算符

评论

0赞 NathanOliver 6/14/2017
请不要链接到下载链接。恐慌接踵而至。
0赞 Bambino 6/14/2017
我可以轻松删除链接,但我希望读者能够尽可能轻松地运行我的最小工作示例。删除链接后,我该如何执行此操作?(顺便说一句,为什么将下载链接发布到头文件不好?
0赞 NathanOliver 6/14/2017
仅仅因为它说它是一个头文件并不意味着它是。您可以链接到文本,然后如果人们需要它,他们可以选择下载它或将其复制到他们自己的文件中。例如,此链接无需下载即可链接到源
0赞 Bambino 6/14/2017
那么链接到GitHub上的项目主页可以吗?但是我不应该链接头文件,因为它可能是安全问题?好吧,我会删除它,但我真的不明白为什么在项目页面上链接头文件是一个问题。(我当然检查过了。
0赞 Bambino 6/14/2017
感谢您的编辑。我没有得到你想要的。

答:

1赞 Bambino 6/26/2017 #1

一个人应该使用

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

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