我需要一個函數,它將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