C++ &引用;错误:对‘;的调用没有匹配函数;向后推(字符[6])”;。如何解决此代码中的错误?
我想在向量中存储字符。但当我想推回匹配的角色时,它不起作用 此行中显示错误-C++ &引用;错误:对‘;的调用没有匹配函数;向后推(字符[6])”;。如何解决此代码中的错误?,c++,vector,C++,Vector,我想在向量中存储字符。但当我想推回匹配的角色时,它不起作用 此行中显示错误- v.push_back(arithmetic_operator[i]); 整个代码是- #include<bits/stdc++.h> using namespace std; int main() { vector<char>v; char str[100]; gets(str); char *ptr; ptr = strtok(str, " "
v.push_back(arithmetic_operator[i]);
整个代码是-
#include<bits/stdc++.h>
using namespace std;
int main()
{
vector<char>v;
char str[100];
gets(str);
char *ptr;
ptr = strtok(str, " ");
char arithmetic_operator[6][6] = {"+", "-", "*", "/", "%", "="};
while(ptr !=NULL)
{
// arithmetic operator
for(int i=0; i<sizeof(arithmetic_operator); i++){
if(strcmp(arithmetic_operator[i], ptr) == 0)
{
v.push_back(arithmetic_operator[i]);
}
else
{
continue;
}
}
ptr = strtok(NULL, " ");
}
for (auto it = v.begin(); it != v.end(); it++)
{
cout << *it << " ";
}
return 0;
}
#包括
使用名称空间std;
int main()
{
向量;
char-str[100];
获取(str);
char*ptr;
ptr=strtok(str,“”);
字符算术_运算符[6][6]={“+”、“-”、“*”、“/”、“%”、“=”};
while(ptr!=NULL)
{
//算术运算符
对于(int i=0;i
但是显然,算术运算符[i]
一点也不像字符。如果您打印整个错误,它甚至可能会告诉您真正的类型,但作为线索,算术运算符[i][0]
将是一个char来回答您的问题:您正在将char*
传递给向量
。因此,将v
定义为向量
将解决此错误
<> P> >如已指出的,<代码>获取 >在C++ 11中,在C++ 14中删除。对于相同的功能,可以使用<代码> STD::FGES。看一下。< /P>不要使用<代码>获取< /代码>。它以前被弃用,并且已经从C和C++标准中删除。然而,你要推回它的pechar[6]
v
是一个char
的向量。你的意思是要推回pack算术运算符[i][0]
(我不建议将运算符存储在这个2D数组结构中)?建议阅读:sizeof(算术运算符)
没有达到您期望的效果。它返回整个数组的大小(以字节为单位),因此在本例中返回36。您对sizeof(算术运算符)
有什么看法?使用继续;
?我感觉OP会误解您的线索。正确的代码是算术运算符[I][0]
说得好,我减少了线索的误导性。不过,我仍然不知道为什么它首先使用字符[6][6]
。是的,算术运算符[I][0]
是正确的代码。它正在工作。
#include<bits/stdc++.h>
vector<char>v;
v.push_back(...);
char arithmetic_operator[6][6] = {"+", ... };