Boost ptree动态修改值数组
boost ptree modify an array of values on the fly
我开始使用boost中的ptree和json解析器来保存一些快速信息。问题是我只需要保存一些URI,所以我不关心键。现在我想找到一个特定的值,然后把它去掉。我该怎么做呢
{
"MyArray":
[
"value1",
"value2"
]
}
我不能使用find()
和迭代器似乎不工作。
for (it ; it != myptree.end(); ++it)
if ((*it).second.data.compare(strValueImSearching) != 0)
// the previous line is not valid from .data
myptree.erase(it);
啊。灯泡一刻。
不能迭代这样变化的集合,因为erase
调用使当前迭代器失效。
查看这里的迭代器失效规则:
应该使用稳定迭代器:
while (it != myptree.end()) {
if ((*it).second.data.compare(strValueImSearching) != 0)
it = myptree.erase(it);
else
++it;
}
相关文章:
- 为什么可以修改数组 b?
- 如何将字节数组元素替换为修改的十六进制 ASCII 符号?
- 如何修改代码以打印出数组 v2
- 使用指针算法修改函数中的 2D 数组
- 当使用我在一个函数、另一个函数中修改的数组时,在我的输出中得到一个奇怪的负数
- 将数组传递给递归函数,同时C++修改它
- 数组在 C++ 中不使用 static in 函数时不会修改
- C++:通过函数修改数组
- 修改字符串数组中的字符串
- 我在代码中收到一个运行时错误,该错误如何通过修改最多一个元素来查找数组是否可以变得不减少
- 我正在尝试修改一个字节数组并通过 JNI 将其从 c++ 发送到 java
- 修改排序的数组或每次对数组进行排序
- 如何修改数组,从中删除空格,然后将其存储在新数组中
- 从字符串修改char数组
- 循环赋值的多维数组:表达式必须是可修改的左值
- 尝试修改数组时出现写访问冲突
- 当我们在 C++ 中的参数中传递它们时,如何修改一些数组而不修改其他数组
- 修改函数内的多维数组
- 使用指标后数组未修改
- 从uint8_t数组修改数据非常慢