提升c++属性-若键不存在,则设置为false
Boost c++ property - if key does not exist then set to false
我是使用属性树进行json解析的新手。
如果我有这个散列:
foo = {'test1',true}
ptree pt;
bool v = pt.get<bool>("test2");
我需要检查一个密钥是否存在,如果没有设置为false。
我该如何优雅地做到这一点?
感谢
// bool optional
boost::optional<bool> v = pt.get_optional<bool>("test2");
// any type actually
boost::optional<std::string> v2 = pt.get_optional<std::string>("test3");
if (v) // key exists
bool bool_value = v.get();
else // not exists
v.set(false);
从boost文档中,您可以尝试找到密钥,如果是not_found()
,则可以推送新密钥。
assoc_titerator not_found();返回未找到的迭代器。等效于实际关联容器中的end()。
const_assoc_iterator not_found()const;返回未找到的迭代器。等效于实际关联容器中的end()。
assoc_titerator find(const key_type&key);查找具有给定的键,如果没有,则为not_found()。无法保证如果多个具有相同的密钥,则返回哪个子项。
const_assoc_iterator find(const key_type&key)const;查找孩子使用给定的键,如果没有,则使用not_found()。没有保证在多个具有相同密钥的情况下返回哪个子项。
相关文章:
- 为不同配置设置MSVC_RUNTIME_LIBRARY的正确方法是什么
- 为什么"do while"循环不断退出,即使条件计算结果为 false?
- 在C++/Linux中设置单调时钟的一些技巧
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 伪造事实↔false
- QueryWorkingSet总是返回false
- 嵌套在类中时无法设置成员数据
- 需要帮助设置在C++中使用的Potrace
- 如何在自删除后将对象设置为nullptr
- 将指针设置为"nullptr"并不能防止双重删除?
- 如何在Ubuntu中使用cmake设置qt4
- ld:bind_at_load和-bitcode_bundle(Xcode设置ENABLE_bitcode=YES)不能
- 如何在boost beast http请求中设置http头
- 给定一个大小的布尔数组,这都是真实的,我将如何仅使用递归将所有值设置为false
- 如何将布尔矩阵的每个元素设置为false而不循环
- 为什么计时器工作了这么多次,甚至我设置它的repeat=false
- 尝试在C 程序中设置简单的键盘输入.使用变量存储True或false
- unordered_map的默认构造函数,bool类型将设置为false
- 为什么这个变量被设置为false
- 提升c++属性-若键不存在,则设置为false