为什么我不能直接 push_back 更新向量中函数的值?
Why can't I directly push_back update value from function in vector?
push_back
使用函数更新值的向量不允许为什么?
std::vector< std::string >goin;
goin.push_back(function(somestringvalue)); // why cant it take update value?
void function(std::string& var)
{
var += "pre";
}
正如其他人所说,问题是 function
没有 return 任何东西。解决这个问题的方法是让它 return 它的参数:
const std::string& function(std::string& var) {
var += "pre";
return var;
}
这样它会修改传递给它的字符串,并且它return是对该字符串的引用,以便您可以将它推入向量。
push_back
使用函数更新值的向量不允许为什么?
std::vector< std::string >goin;
goin.push_back(function(somestringvalue)); // why cant it take update value?
void function(std::string& var)
{
var += "pre";
}
正如其他人所说,问题是 function
没有 return 任何东西。解决这个问题的方法是让它 return 它的参数:
const std::string& function(std::string& var) {
var += "pre";
return var;
}
这样它会修改传递给它的字符串,并且它return是对该字符串的引用,以便您可以将它推入向量。