从结构类型排队
Queue from struct type
好的,这是我的结构:
struct sudurjanie {
string stoka_ime;
string proizvoditel;
double cena;
int kolichestvo;
};
接下来我创建队列:
queue<sudurjanie> q;
但是当我写这篇文章时:
cin >> q.push(sudurjanie.stoka_ime);
在错误列表中写下以下内容:
智能感知:非静态成员引用必须相对于特定对象
好的,当我尝试这个时:
cout << q.back();
,为什么要写这个:
没有运算符
"<<"
与这些操作数匹配
?
听起来您可能想这样做:
queue<sudurjanie> q;
sudurjanie item;
cin >> item.stoka_ime;
q.push(item);
cin>>q.push(sudurjanie.stoka_ime);
线没有任何意义。 从字面上看,它的意思是:
- 将
sudurjanie.stoka_ime
传递给q
的push()
方法。 这将失败,因为push()
在提供类型为string
的参数时采用类型sudurjanie
的参数。 - 从
cin
读取push()
调用的结果,即void
。 这将失败,因为读入void
是没有意义的。
您对sudurjanie.stoka_ime
的引用无效,因为您命名的是该类型的成员,而不是它的实例。
尝试:
sudurjanie tmp;
cin >> tmp.stoka_ime;
q.push(tmp);
这将创建一个名为 tmp
的 sudurjanie
实例,读取字段,然后将实例推送到队列中
首先读取其中的项,然后将结构添加到队列中。
您的队列是sudurjanie
结构的队列。您尝试推送到队列中的是
a) 结构的名称,而不是实例的名称
b) 结构的成员(字符串)。
相关文章:
- ArduinoJson 6.15.2:JsonObject没有命名类型
- 防止主数据类型C++的隐式转换
- 大量序列中核苷酸类型的快速计数
- 如何从C++中的依赖类型中获得它所依赖的类型
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- 是否可以初始化不可复制类型的成员变量(或基类)
- 如何获取std::result_of函数的返回类型
- 从父命名空间重载类型
- 如果C++类在类方法中具有动态分配,但没有构造函数/析构函数或任何非静态成员,那么它仍然是POD类型吗
- 我想将一个对T类型的非常量左值引用绑定到一个T类型的临时值
- Openssl 1.1.1d无效使用不完整的类型"struct dsa_st"
- 访问者访问变体并返回不同类型时出错
- 在VS2010-VS2015下编译时,如何使用decltype作为较大类型表达式的LHS
- Qt 无法对类型"uint8_t"的参数进行排队,即使使用 qRegisterMetaType 也是如此
- Qt:无法对类型为"QProcess::P rocessError"的参数进行排队 - QProcess::P rocessError(FailedToStart)
- 从结构类型排队
- std::根据运行时数据使用不同的容器类型排队
- QVector<自定义类>连接线程无法排队类型的参数
- QObject::connect:无法对类型 'int&' 的参数进行排队
- Qt:不能为MyClass类型的参数排队