C++ 使用forward_list::push_front()和struct对象

C++ 使用forward_list::push_front()和struct对象,c++,stl,singly-linked-list,C++,Stl,Singly Linked List,我想开始使用STL版本的单链表,但遇到了一个问题。如果我希望我的列表由struct类型的对象组成,而不仅仅是简单的本机类型,如int、char等,那么我就很难使用push_front()函数,因为它只需要一个参数。那么,如何使用如下代码插入新对象: #include <iostream> #include <forward_list> using namespace std; struct Node { double x; double y; };

我想开始使用STL版本的单链表,但遇到了一个问题。如果我希望我的列表由struct类型的对象组成,而不仅仅是简单的本机类型,如int、char等,那么我就很难使用push_front()函数,因为它只需要一个参数。那么,如何使用如下代码插入新对象:

#include <iostream>
#include <forward_list>

using namespace std;

struct Node
{
    double x;
    double y;
};

int main()
{
    forward_list<Node> myList;
    myList.push_front(???);
}
#包括
#包括
使用名称空间std;
结构体类型
{
双x;
双y;
};
int main()
{
转发列表列表;
我的列表。向前推(???);
}
???我感谢任何帮助

myList.push_front({3.14,2.71})
myList.push_front(节点{3.14,2.71})

Node n;
n.x = 3.14;
n.y = 2.71;
myList.push_front(n);

应该都能用

非常感谢你!!!还有一点:如果不是结构,我有一个类,我怎么做?我在C++中使用代码> >结构> /COD> =代码>类< /COD>,SANS默认访问修饰符。@ RealVeloCoelo:实际上,在C++结构中确实有访问修饰符。我认为您想说的是struct==class,除了struct成员默认为public,而class成员默认为private之外。无论如何,我问这个问题的原因是我不确定{a,b,c,etc.}的顺序是否仍然像在结构中那样正确映射。@Otringal我说的“sans default access modifiers”意味着它们不同。如果您的类是一个聚合,那么可以很好地使用聚合初始化。如果您的类(或结构)不是聚合,请定义一些构造函数,然后让统一初始化完成其工作,或者使用
emplace\u front
@Otringal yes,在这个意义上使用它。我应该编写struct equals类而不考虑默认的访问修饰符。