首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >来自struct类型的队列

来自struct类型的队列
EN

Stack Overflow用户
提问于 2012-06-12 20:31:50
回答 4查看 10.7K关注 0票数 2

好的,这是我的结构:

代码语言:javascript
运行
复制
struct sudurjanie {
    string stoka_ime;
    string proizvoditel;
    double cena;
    int kolichestvo;
};

接下来,我创建队列:

代码语言:javascript
运行
复制
queue<sudurjanie> q;

但当我写这个的时候:

代码语言:javascript
运行
复制
cin >> q.push(sudurjanie.stoka_ime);

在错误列表中,写以下内容:

IntelliSense:非静态成员引用必须相对于特定对象

好吧,当我尝试这个:

代码语言:javascript
运行
复制
cout << q.back();

为什么要写这个:

没有运算符"<<"与这些操作数匹配。

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-06-12 20:35:41

听起来你可能想这样做:

代码语言:javascript
运行
复制
queue<sudurjanie> q;

sudurjanie item;
cin >> item.stoka_ime;

q.push(item);

cin>>q.push(sudurjanie.stoka_ime);这句话没有任何意义。字面意思是:

string.

  • Read

  • sudurjanie.stoka_ime传递给qpush()方法。这将失败,因为push()cin中提供了一个sudurjanie类型的参数到push()调用的结果中,即void。这将失败,因为将其读入void.

没有任何意义。

票数 6
EN

Stack Overflow用户

发布于 2012-06-12 20:37:08

您对sudurjanie.stoka_ime的引用是无效的,因为您要命名的是类型的成员,而不是它的实例。

尝试:

代码语言:javascript
运行
复制
sudurjanie tmp;
cin >> tmp.stoka_ime;
q.push(tmp);

这将创建sudurjanie的一个实例,名为tmp,读取字段,然后将实例推到队列中。

票数 3
EN

Stack Overflow用户

发布于 2012-06-12 20:35:48

先读取项目,然后将结构添加到队列中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11004400

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档