Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/126.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ c+中队列结构中的结构节点+;_C++_Data Structures - Fatal编程技术网

C++ c+中队列结构中的结构节点+;

C++ c+中队列结构中的结构节点+;,c++,data-structures,C++,Data Structures,假设我有这样一个节点: struct node{ int a; int b; } 现在我想在cpp中创建一个队列结构。如果数据类型为int,那么我们可以通过以下方式轻松实现: queue<int> a; 队列a; 我们也可以推动或流行这样的元素:a。向后推(12)或a。流行音乐(12) 但是在前面的例子中,当out数据类型是用户定义的时,我们如何创建这样一个队列并从中推送或弹出元素 将非pod(如struct或class放入容器队列中)绝对没有问题 struct s1

假设我有这样一个节点:

struct node{
  int a;
  int b;
} 
现在我想在cpp中创建一个队列结构。如果数据类型为int,那么我们可以通过以下方式轻松实现:

queue<int> a;
队列a;
我们也可以推动或流行这样的元素:a。向后推(12)或a。流行音乐(12)

但是在前面的例子中,当out数据类型是用户定义的时,我们如何创建这样一个队列并从中推送或弹出元素

将非pod(如
struct
class
放入容器队列中)绝对没有问题

struct s1{
    int a;
    string b;
};
class Foo{
    int a;
    string b;
};
int main() {
    queue<int> qi;
    queue<s1> qs;
    queue<Foo> qfoo;
    return 0;
}
struct s1{
INTA;
b串;
};
福班{
INTA;
b串;
};
int main(){
队列齐;
队列qs;
队列qfoo;
返回0;
}

使用队列a;创建节点类型的对象并使用函数a.push_back() a、 pop_front()分别用于推送和弹出。另外,如果有,请不要忘记包含队列。

struct node{
    int a;
    int b;
};

std::queue<node> q;
这将添加一个a=11和b=12的
节点

只要复制列表初始化是可能的,这就可以工作,就像在本例中一样。否则您将不得不使用
q.push(节点{11,12})

//示例程序
#包括
#包括
使用名称空间std;
结构s1{
INTA;
b串;
};
福班{
公众:
INTA;
b串;
};
int main()
{
队列q;
富奥比;
目标a=2;
obj.b=“对象”;
q、 推(obj);
foop=q.back();

我不明白你的问题是什么。你可以随心所欲地使用
std::queue
。(顺便说一句,不是吗)同样的方法,将
int
替换为
node
。你试过了吗?如何将元素推到那里。假设我想为第一个节点推11,12。你应该创建一个
node
的对象,然后推它。@AmirKhasru类似于
a.push\u(node{11,12})
也许吧?很好。这太棒了。但如何将此类类或结构节点推送到那里呢?基本上你可以使用容器来保存类或结构的多个实例。所以创建实例并将它们推到其中。然后你可以对它们进行排序、删除、添加更多内容,并做任何你想做的事情。@SauravSahu向他们展示了如何实际操作。请随意从我的评论中获取这些信息。假设我有一个这样的队列:queuea。现在我想推11和12。那么我如何推它们?推回(11,12)?这样?@AmirKhasru阅读了我的评论。假设构造函数没有声明。@πάνταῥεῖ 什么构造器?@DeiDei给出了一个假想。我只是想探索整个可能性空间。很好的解释。:)
q.push({ 11, 12 });
// Example program
#include <iostream>
#include <queue>

using namespace std;

struct s1{
    int a;
    string b;
};

class Foo{
    public:
    int a;
    string b;
};

int main()
{
  queue<Foo> q;
  Foo obj;
  obj.a=2;
  obj.b="Object";
  q.push(obj);
  Foo p=q.back();

  cout<<p.a<<endl;
  cout<<p.b<<endl;

  return 0;
}