Deque emplace_back指向对象的新指针
Deque emplace_back New Pointer To Object
我正在创建一个指向新对象的新指针,并立即push_front为双端面。我想改用emplace_front但遇到编译器错误。
我的对象构造函数需要 1 个字符串参数。
std::deque<NetPacket*> q_IncomingPackets;
q_IncomingPackets.push_back(new NetPacket(std::string(uncompressed_data, retVal))));
q_IncomingPackets.emplace_back(std::string(uncompressed_data, retVal));
根据其他网站的参考,我认为我可以简单地将push_back
换成emplace_back
但出现以下错误:
Error C2440 'initializing': cannot convert from 'std::basic_string<char,std::char_traits<char>,std::allocator<char>>' to 'PeerNet::NetPacket *' PeerNet vcincludexmemory0 737
参考文献没有讨论在创建指向对象的新指针时使用 emplace,只讨论具体对象。 cppreference.com cplusplus.com
std::deque::emplace_back
期望Args&&... args
构造value_type
,这里NetPacket*
。
没有办法从std::string
构造NetPacket*
,这就是编译器错误的原因。
由于您的值类型是NetPacket*
(它是一个原始指针),因此 push_back
和 emplace_back
之间没有太大区别。
相关文章:
- C++:将值 int(例如:0x00AAFAD8)转换为指针(指针本身也是 0x00AAFAD8 值)
- 未分配正在释放的指针 - 指针问题
- 我应该如何定义返回指针的函数?(引用指针与指针指针)
- 我可以分配给新[]的指针
- 指针?指针功能
- 如何创建对象变量,以便每次分配新的指针
- 简单的功能大小;了解指针-指针差异
- 当我删除指针指针时会发生什么
- 关于将指针作为参数传递到函数:它实际上在函数中创建了新的指针
- 将向量向量转换为指针指针
- 理解c++中的指针指针以获得函数调用
- 在指针指针中更改价值
- 指针指针,动态内存分配
- 为什么我的新分配指针会自动在程序退出上删除
- 如何在不取消引用指针的情况下返回指针指针值?
- 使用新的指针
- C# 如何定义新的指针结构
- 提升指针PCL,用新的指针更新旧的指针并删除新的指针
- C++向列表添加新的指针对象
- 如何将字符指针数组拆分为两个带有分隔符的新字符指针数组