gpt4 book ai didi

c++ - equal_range 应该如何工作?

转载 作者:行者123 更新时间:2023-11-28 00:16:50 26 4
gpt4 key购买 nike

#include <boost/property_tree/ptree.hpp>
#include <string>
#include <iostream>

int main()
{
boost::property_tree::ptree ptree;
const std::string entry = "server.url";
ptree.add( entry, "foo.com" );

auto range = ptree.equal_range( entry );
for( auto iter = range.first ; iter != range.second ; ++iter )
std::cout << iter->first << '\n';
}

我不明白为什么这段代码没有打印出来。由于可能有很多 server.url 条目,我尝试使用 equal_range 访问它们。

最佳答案

equal_range 不适用于路径。添加后,您的 ptree 如下所示:

<root>
"server"
"url": "foo.com"

但是 equal_range 正在直接在根节点中寻找名为“server.url”的子节点。

此外,您可能想要打印出 it->second.data(),因为前者只会为每个找到的条目打印“server.url”。

修改后的代码:

#include <boost/property_tree/ptree.hpp>
#include <string>
#include <iostream>

int main()
{
boost::property_tree::ptree ptree;
const std::string entry = "server.url";
ptree.add( entry, "foo.com" );

auto range = ptree.get_child("server").equal_range( "url" );
for( auto iter = range.first ; iter != range.second ; ++iter )
std::cout << iter->second.data() << '\n';
}

关于c++ - equal_range 应该如何工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29693845/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com