如何在 c++ 中使用结构列表
How to use list of structs in c++
我想构建一个包含标头列表的结构包。我使用的相关代码:
//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构建构造函数,该构造函数将初始化标头列表以仅包含一个标头 - 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);
};
我得到的错误:
数据包.cpp:错误:调用"std::list>::p ush_front(标头 (&)()))"没有匹配函数
真的很感谢任何帮助
这是一个函数声明:
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
{
}
相关文章:
- 在C++中循环访问自定义结构列表的小问题
- 如何从结构列表中筛选信息
- C++使用旧编译器GCC 4.4.0在结构列表中查找字符串
- 唯一的结构列表
- 如何查找结构列表项
- 将数组/对象/结构列表从C#库中传递给C MFC应用程序
- 是否可以将结构列表从C 传递到C#
- C++ 分段错误 - 具有集合的结构列表
- 双链接结构列表的内存泄漏
- 如何在 c++ 中使用结构列表
- C++如何访问结构列表的字符串成员
- 按元素对结构列表进行排序
- 对结构列表进行排序
- C++数据结构列表,在我的代码中
- 要排序或搜索的结构列表(C++)
- C++结构列表中插入元素
- 分配结构列表的向量
- 当我尝试从结构列表中访问内存时出现错误:" Program received signal SIGSEGV, Segmentation fault."
- 如果与变量匹配,如何从结构列表中删除1个结构
- 如何使用整数参数(c++)访问结构列表