我需要一个函数,它将rapidjson::Value
的所有成员都作为std::vector
返回。我试图避免每次需要时用IsArray()
来写if
。不幸的是,下面的代码不起作用。将rapidjson :: Value的元素复制到std :: vector
std::vector<const rapidjson::Value&> valueToList(const rapidjson::Value& value)
{
std::vector<const rapidjson::Value&> valueList;
if (value.IsArray())
{
for (rapidjson::SizeType i = 0; i < value.Size(); i++)
{
valueList.push_back(val[i]);
}
}
else
{
valueList.push_back(val);
}
return valueList;
}
我得到的错误的push_back是模糊的。有没有简单的方法来克服这一点?谢谢。
你不能有一个本地引用的向量。第二个和第三个答案[**这个问题**](http://stackoverflow.com/questions/922360/why-cant-i-make-a-vector-of-references)做一个体面的工作,解释为什么并提供替代方案(比选择的问题更多,imho)。 – WhozCraig