【发布时间】:2014-05-22 03:42:45
【问题描述】:
所以我试图递归地构建一个向量,当我看到这个时,我开始认为我做错了。以下代码是否会在每次迭代结果中返回一个向量,或者我只是在每次迭代中创建新向量,而实际上不会在每个递归调用上构建。如果我错了,我该如何递归地构建向量...在此先感谢您的建设性帮助!
std::vector<ParameterClass> recursiveParser :: parseParamList()
{
std::vector<ParameterClass> paramVector;
if (lexicator->getCurrentToken()->getTokenType() == STRING) {
paramVector.push_back(ParameterClass(*lexicator->getCurrentToken()));
lexicator->advance();
parseParamList();
} else if (lexicator->getCurrentToken()->getTokenType() == ID) {
paramVector.push_back(ParameterClass(*lexicator->getCurrentToken()));
lexicator->advance();
parseParamList();
} else {
// so as to not fail in Expression, i need to check to see that there is a
// left paren indicating that there should be an expression
if (lexicator->getCurrentToken()->getTokenType() == LEFT_PAREN) {
paramVector.push_back(ParameterClass(parseExpression()));
lexicator->advance();
parseParamList();
}
}
return paramVector;
}
【问题讨论】:
-
问题是什么?
-
为什么不将第一个和第二个条件合二为一呢?看起来多余
标签: c++ recursion vector construction