假设我创建了一个向量字符串v并将此向量传递给带有向量字符串数组的参数,我得到了一个编译器错误:没有用于调用的匹配函数。
我的功能
int functionA(vector <string> &a) //vector <string> &a[] could not work
{}
在main中调用函数:
vector <string> a;
for(int i =0 ; i < a.size(); i++)
{
functionA(a[i]); //Error at this line...
}
functionA(a)应该可以,但我想在向量字符串中使用数组。我怎么能这样做?
答案 0 :(得分:3)
如果您想传递
A vector
strings
呼叫:
vector <string> a;
..
..
functionA(a); //notice this is not in for loop.
功能签名:
int functionA(vector <string> &a)
B)仅string
。
呼叫:
for (unsigned int i=0; i < (unsigned int)a.size();i++)
functionA(a.at(i));
功能签名:
int functionA(string &a)
{
答案 1 :(得分:2)
int functionA(vector <string> &a)
是一个引用vector<string>
的函数,所以你需要向它传递一个向量:
vector <string> a;
...
functionA(a);
代码中的 a[i]
为std::string
,而不是矢量。
但是如果你想传递一个字符串,那么保持该循环并继续传递a[i]
,只需将函数更改为:
int functionA(std::string& str)