使用 std::list 回推数据
pushing back a data using std::list
我有一个定义的类型,并创建了一个这种类型的列表。
Message theMessage;
std::list<Message> LM;
现在这个声明
LM.push_back(theMessage);
给我这个错误:
/../gcc-4.1.2/lib/gcc/i686-pc-linux-gnu/4.1.0/../../../../include/c++/4.1.0/ext/new_allocator.h:104: error: no matching function for call to ‘
SharedTypes::Message::Message(const SharedTypes::Message&)’
构造函数看起来像
explicit Message(Message & aMsg)
{}
我该如何解决这个问题?
正如建议的那样,构造函数应该是:
-
explicit Message(const Message & aMsg)
-
声明为
public
如果无法更改此设置,请考虑使用智能指针容器,例如 std::list<std::shared_ptr<Message>>
或 boost::ptr_list<Message>
我的坏:
explicit Message(const Message & aMsg)
{}
explicit
确实有效,但您必须通过引用传递参数const
。
相关文章:
- 使用std::multimap迭代器创建std::list
- 防止主数据类型C++的隐式转换
- 来自 std::list 的迭代器 .end() 按预期返回"0xcdcdcdcdcdcdcdcd"但 .begin()
- 用于访问容器<T>数据成员的正确 API
- 嵌套在类中时无法设置成员数据
- 使用流处理接收到的数据
- 静态数据成员的问题-修复链接错误会导致编译器错误
- 处理小于cpu数据总线的数据类型.(c++转换为机器代码)
- 如何在 C 中正确使用 libiconv 使其不会报告"Arg list too long"?
- C++中带有List类的迭代器Segfault
- 在cuda线程之间共享大量常量数据
- 使用 std::list 回推数据
- C++:将存储在List容器中的数据输出到文本文件中
- 模板类和继承问题 - 'List'不命名非静态数据成员或基类
- 使用char*和std::list将数据结构写入二进制文件
- std::string::clear和std::list::clear是否从内存中擦除数据
- 当需要成员数据时,如何对std:list进行排序
- 无法在 qml 中创建C++类对象"Cannot assign object to list property "数据" "
- (Qt或其他)拖放数据的mime类型的uri-list与协议http或ftp在Windows桌面或explorer.ex
- 从异构 std::list 中检索数据