我需要在JSON字符串中检索嵌套对象,我正在尝试使用rapidjson.我发现的只是如何检索数组和基本类型,而不是子对象.我创建了以下玩具示例,它给出了一个错误:
rapidjson::Document document;
std::string test = " { \"a\": { \"z\" : 21 } } ";
std::cout << test << std::endl;
if ( document.Parse<0>( test.c_str() ).HasParseError() ) {
std::cout << "Parsing error" << std::endl;
} else {
if ( document[ "a" ].IsObject() ) {
std::cout << "OK" << std::endl;
std::cout << document[ "a" ].GetString() << std::endl;
}
}
Run Code Online (Sandbox Code Playgroud)
这是执行时的输出:
{ "a": { "z" : 21 } }
OK
JSONTest: ../rapidjson/document.h:441: const typename Encoding::Ch* rapidjson::GenericValue<Encoding, Allocator>::GetString() const [with Encoding = rapidjson::UTF8<char>, …Run Code Online (Sandbox Code Playgroud) 我一直在尝试为C++设置一个EDE项目(emacs24 +内置CEDET),我开始变得绝望,因为我似乎无法找到我希望生成makefile的方式.我对Emacs比较陌生.我会试着描述一下我在做什么:
我有一个像这样的玩具项目:
main.cpp
other/
Utils.cpp
Utils.h
CGrabBuffer.cpp
CGrabBuffer.h
Run Code Online (Sandbox Code Playgroud)
main.cpp在"other /"目录中包含.h's.以下是使用此简单目录设置设置EDE项目的步骤:
M-x ede-new; 类型:Make; 姓名:main-proj.M-x ede-new; 类型:Make; 姓名:aux-proj.M-x ede-new-target; 名称:main; 类型:program.出现提示时,我将main.cpp添加到此目标.M-x ede-customize-current-target所有三个目标,然后添加一些包含路径,一些库等.M-x ede-compile-project它不会编译,因为:
正如你所看到的,我正处于一团糟之中.也许我甚至不理解EDE中"目标"的含义.我还读到了ede-cpp-root-project的存在,它必须在.emacs文件中指定.我没有尝试过,因为我认为它只是帮助语义.它不会生成Makefile,是吗?我是否可以(或者我需要)使用Project.el构建的EDE项目和使用ede-cpp-root-project进行语义相同的事情?还是多余的?
抱歉,如果我误解了很多东西,但我很困惑,对emacs不熟悉会让事情变得更糟.谢谢你的耐心!
编辑:通过一些修补和我收到的回复,我已经能够找出很多东西,所以非常感谢.我还不明白的是使用ede-cpp-root-project,它必须在.emacs文件中指定.它只是用于c ++语义吗?使用Project.el的项目和.emacs中的elisp行是否是多余的?
有没有办法将OpenCv图像直方图存储到磁盘,以便可以直接加载,而不必强制再次加载图像并从中计算直方图?
谢谢.