如何在c中使用结构列表
发布时间:2020-12-16 09:50:51 所属栏目:百科 来源:网络整理
导读:我想构建一个包含Headers列表的struct Packet.我使用的相关代码: //Packet.h#include listusing namespace std;struct Header { Header(); bool Valid; long unsigned DestAddr:48;};struct Packet_t { Packet_t(); listHeader Headers;}; 现在我尝试构建Pa
我想构建一个包含Headers列表的struct Packet.我使用的相关代码:
//Packet.h #include <list> using namespace std; struct Header { Header(); bool Valid; long unsigned DestAddr:48; }; struct Packet_t { Packet_t(); list<Header> Headers; }; 现在我尝试构建Packet_t的构造函数,该构造函数将初始化Headers列表以仅包含一个头 – FirstHeader: //Packet.cpp #include "Packet.h" Header::Header() { Valid = false; DestAddr = 0; }; Packet_t::Packet_t(){ ValidPacket = false; Header FirstHeader(); //here I try to initialize the first Header using its constructor Headers.push_front(FirstHeader); }; 我得到的错误: Packet.cpp:错误:没有匹配函数来调用’std :: list> :: push_front(Header(&)())’ 真的很感激任何帮助 解决方法
这是一个函数声明:
Header FirstHeader(); // function FirstHeader,returns a Header 你需要的是什么 Headers.push_front(Header()); 要么 Headers.emplace_front(); // default constructs FirstHeader object in place 或者,如果您在推送之前需要一个实例来处理, Header FirstHeader; // ... do stuff to Header Headers.push_front(FirstHeader); 或者,使用构造函数初始化列表使用一个元素初始化列表: Packet_t::Packet_t() : Headers(1) // or Headers{Header(args....) if need args { } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |