好的,这是我的结构:
struct sudurjanie {
string stoka_ime;
string proizvoditel;
double cena;
int kolichestvo;
};
Run Code Online (Sandbox Code Playgroud)
接下来我创建队列:
queue<sudurjanie> q;
Run Code Online (Sandbox Code Playgroud)
但是当我写这个:
cin >> q.push(sudurjanie.stoka_ime);
Run Code Online (Sandbox Code Playgroud)
在错误列表中写这个:
IntelliSense:非静态成员引用必须与特定对象相关
好的,当我尝试这个:
cout << q.back();
Run Code Online (Sandbox Code Playgroud)
,为什么写这个:
没有运算符
"<<"
匹配这些操作数
?
听起来你可能想要这样做:
queue<sudurjanie> q;
sudurjanie item;
cin >> item.stoka_ime;
q.push(item);
Run Code Online (Sandbox Code Playgroud)
这条线cin>>q.push(sudurjanie.stoka_ime);
没有任何意义.从字面上看,它意味着:
sudurjanie.stoka_ime
到q
的push()
方法.这将失败,因为push()
在sudurjanie
提供类型的参数时接受类型的参数string
.cin
入push()
调用的结果,即void
.这将失败,因为阅读没有意义void
.