我看不到从 std::queue 中获取元素的方法
I cannot see a way to take an element from std::queue
对不起,如果我在重复一个问题,但我发现不一样。从标准队列中提取元素的正确操作是什么?
T Pop ()
{ T rout;
EnterCriticalSection (pCSection);
rout = Queue.front (); // here the link is returned
Queue.pop (); // here destructor is called
LeaveCriticalSection (pCSection);
return rout; // -->> there everything falls
}
我有一个带有动态内存管理和复制构造函数的类T
,与front()
复制构造函数不自动调用。
析构函数在范围结束时释放内存,我有垃圾实体。
如何强制复制结构?
您的问题是没有复制赋值运算符吗?您提到了复制构造函数,但您没有在代码中复制构造任何内容。也许你打算这样做:
T Pop ()
{
assert(!Queue.empty());
EnterCriticalSection (pCSection);
T rout = Queue.front ();
Queue.pop ();
LeaveCriticalSection (pCSection);
return rout;
}
甚至:
T rout(std::move(Queue.front()));
"我有一个带有动态内存和复制构造函数的 T 类,...我怎样才能强制复制?
这很容易
T rout(Queue.front());
很可能您一直缺少为T
提供适当的分配运算符。另请参阅此处 什么是三法则?
此外,正如您提到在类T
中完成的动态内存管理。请放松一下,使用标准容器类,甚至是 c++ 的标准动态内存管理功能,最好直接使用 new
和delete
。
相关文章:
- 在 alglib::real_1d_array 中获取元素总和的奇怪错误
- 从 c++ 中的链表中获取元素
- CPtrList - 如何获取元素的索引?
- 编译按映射类型获取元素的映射错误元组
- 如何在列表中获取元素的所有组合
- 通过 std::queue 中的元素的值获取元素的索引
- 如何从circular_buffer获取元素
- 反转偏移量/按偏移量获取元素的名称
- 如何在 c++ 中搜索向量并获取元素的位置
- 如何在 n 元树中获取元素
- 如何从STL容器实例中获取元素类型
- 使用成员函数top()从priority_queue获取元素
- c ++中是否有任何方法可以在随机访问的列表中获取元素
- 如何在嵌套向量中获取元素类型
- 如何获取元素的数量
- 我看不到从 std::queue 中获取元素的方法
- 获取元素在boost::multi_index_container的顺序索引中的位置
- PugiXML C++获取元素(或标记)的内容
- 如何从传递给STL算法的谓词中获取元素的索引
- 有没有一种方法可以从传递给排序的lambda中获取元素位置