首先我知道这是一件可怕的事情,因为它可能需要大量的内存复制......但是由于我已经给出了规范,它需要完成。
无论如何,我试图通过引用传递字符串和按值传递,因为它将被编辑然后销毁,然后原件将再次使用。
这是函数原型
int print (const string& findme,const string& command,const string& command2,const string& command3, int n, vector<string> list)
这是我的电话,所有变量都是正确的类型。
print (special,command,command2,command3,n,temp);
当我不尝试调用函数时,所有内容都会编译并运行...但是当我这样做时,我会收到此错误:
a2p1.cc: In function âint main(int, char**)â:
a2p1.cc:85: error: no match for call to â(std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >) (std::string&, std::string&, std::string&, std::string&, int&, std::vector<std::basic_string<char, std::char_traits<char>, std::allocator<char> >, std::allocator<std::basic_string<char, std::char_traits<char>, std::allocator<char> > > >&)â
所以我想知道......我应该如何将这些字符串和向量传递给函数,字符串可以通过引用传递,但我需要一个向量的副本,任何语法帮助都会非常有用!谢谢!
以下是变量
int n;
string command = "rr";
string command3 = "null";
string command2 = "f";
string japan;
string special;
special = "fnord";
string textFileName;
vector<string> list;
vector<string> print;
这是对第83行的函数的调用:
while (cin >> inputtemp)
{
...
if ((inputtemp == "p")){
print (special,command,command2,command3,n,list);
}// If
}// While
答案 0 :(得分:1)
您同时拥有一个名为print
的函数和变量。
您实际上并未调用print
函数。
重命名变量。
(你的函数原型是正确的。它会做你所描述的)
再看看你的错误,看看这个。 (我删除了模板以使其更简单)
error: no match for call to (std::vector) (std::string&, std::string&, std::string&, std::string&, int&, std::vector&)