将矢量字符串传递给参数矢量数组

时间:2014-01-31 03:41:55

标签: c++ vector

假设我创建了一个向量字符串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)应该可以,但我想在向量字符串中使用数组。我怎么能这样做?

2 个答案:

答案 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)