为什么我不能直接push_back从向量中的函数更新值?

时间:2017-06-27 16:56:49

标签: c++ vector push-back

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";
}

1 个答案:

答案 0 :(得分:5)

正如其他人所说,问题是function没有返回任何东西。解决这个问题的方法是让它返回它的参数:

const std::string& function(std::string& var) {
    var += "pre";
    return var;
}

这样它会修改传递给它的字符串,并返回对该字符串的引用,以便您可以将其推送到向量中。