【发布时间】:2019-03-04 14:13:38
【问题描述】:
我进一步实现了我的保存功能,并想到将我的参数作为“向量”(因为它们是)而不是“字符串”传递 这给出了这个:
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> >')
【问题讨论】:
-
std::vector没有<<运算符。如果您有std::vector<Foo>,您希望将什么写入save? -
您希望
save << site;做什么? -
我已经更改了标题,所以它看起来不像是关于右值引用。
-
所以例如
username是几个字符串?至少命名错误,可能设计错误 -
你需要一个
struct字段为site、url、username、password,然后将 const 引用传递给该结构的向量,而不是 4 个单独的向量跨度>