将“ vector <string>”作为函数参数传递时出现错误

时间:2019-03-04 14:13:39

标签: c++ vector ofstream

我进一步实现了保存功能,并想到了将参数传递为“ vector”(因为它们是)而不是“ string” 这样:

void saveFunction(ofstream& save, vector<string> site, vector<string> url, vector<string> username, vector<string> password)
{
    save << site;
    save << url;
    save << username;
    save << password;

}

出现此错误:

error: no match for 'operator<<' (operand types are 'std::ofstream' {aka 'std::basic_ofstream<char>'} and 'std::vector<std::__cxx11::basic_string<char> >')

1 个答案:

答案 0 :(得分:3)

ofstream没有<<的重载std::vector运算符,因此您需要自己滚动一个字符,例如

for (auto&& s : username){
    save << s;
}

尽管您使用std::vector的原因可能令人怀疑。