草庐IT

惰性队列

全部标签

c++ - 修剪延迟空闲队列时堆损坏

我目前正试图在我们的代码库中追踪堆损坏的源头,当全页堆跟踪打开时它不会自己出现(因此只有正常的页面跟踪)。我正在使用ApplicationVerifier来阻止损坏,并获得一个不太有用的停止代码00000008:APPLICATION_VERIFIER_HEAPS_CORRUPTED_HEAP_BLOCK(8)Corruptedheapblock.Thisisagenericerrorissuedifthecorruptionintheheapblockcannotbeplacedinamorespecificcategory.=============================

c++ - 队列的指针问题

我正在做家庭作业,一切都快完成了。我在处理代码中的某个部分时遇到问题。我已经尝试了一些事情,但似乎无法弄清楚我做错了什么或我需要做什么才能让它工作。我正在尝试实现一个接收名为QueueData的特定对象的队列。当我执行该程序时,它将一直运行到P2Queue.cpp文件中的第44行。代码此时的目的是将新的QueueData对象添加到队列的尾部,然后将指向temp的指针设置为null,表示队列结束。程序在文件P2Queue.cpp的第44行停止运行。我做错了什么,我需要改变什么,这让我很痛苦。提前致谢!如果您需要进一步说明,请告诉我。P2Queue.cpp#include"P2Queue.

如何保证消息队列不丢失消息(以kafka为例)

目录一、引言二.持久化存储2.1持久化存储原理:2.2使用示例:1.安装Kafka:2.生产者代码:3.消费者代码:三.消息确认机制3.1消息确认机制原理:3.2使用示例:1.生产者代码:2.消费者代码:四.事务机制4.1事务机制原理:4.2使用示例:1.生产者代码:2.消费者代码:五.数据备份与复制5.1数据备份与复制原理5.2使用示例:1.KafkaBroker配置:2.生产者代码3.消费者代码六.消息过期机制总结一、引言消息队列(MessageQueue)是一种用于在不同组件、服务或系统之间传递消息的通信方式。在分布式系统中,消息队列起到了缓冲和解耦的作用,但在使用过程中,如何保证消息不

c++ - 具有堆栈和队列的字符串回文 (C++)

这可以很好地编译并且在没有空格的情况下也能正常工作,但是一旦我在其中放入空格就会告诉我它不是回文或超时。任何帮助将不胜感激!intmain(){queueq;stacks;stringthe_string;intmismatches=0;cout>the_string;inti=0;while(cin.peek()!='\n'){cin>>the_string[i];if(isalpha(the_string[i])){q.push(toupper(the_string[i]));s.push(toupper(the_string[i]));}i++;}while((!q.empty(

c++ - 惰性符号绑定(bind)失败 : symbol not found

我有三个头文件inmyproject描述对象Rational,Complex,和RubyObject.前两个是模板。所有这些都可以使用在头文件中定义的复制构造函数相互转换——除了那些从constRubyObject&构造Rational和Complex的构造函数,定义inasourcefile.注意:这些定义是必要的。如果它们全部进入标题,您将得到circulardependency.不久前,我遇到了someunresolvedsymbolerrors使用源文件中定义的两个复制构造函数。我能够在源文件中包含以下函数voidnm_init_data(){nm::RubyObjectobj

c++ - 获取简单队列的长度

我正在学习一个C++数据结构类,我正在研究的问题是编写一个客户端函数来获取队列的长度,而无需使用函数原型(prototype)更改队列:intGetLength(QueTypequeue);在我看来,这非常简单,因为当您将队列对象传递给一个函数时,它正在使用一个拷贝,所以如果我迭代并出列直到它为空,我就知道队列中有多少项。QueType是文中提供的简单队列类型,ItemType定义为typedefcharItemType;我的简单驱动程序代码如下:#include"QueType.h"usingnamespacestd;intGetLength(QueTypequeue);intmai

DS:循环队列的实现

                         创作不易,给个三连吧!! 一、前言对于循环队列,博主也是源自于一道力扣的OJ题力扣:循环队列的设置   后来我在网上查过,这个循环队列是有自己的应用场景的!!并不是出题者为了出题而产生的,所以我觉得不光要能做会这道题,还得多去探究这道题的不同方式。而且这道题虽然是循环队列,看似好像要把头和尾连起来,但实际上实现过程中是可以不需要的!这也是他非常特别的一点,因此在这我会重点介绍他的数组实现和链式结构实现。二、数组实现循环队列怎么用数组去实现循环队列呢?我们来画图研究一下:2.1结构体的创建typedefintQDataType;typedefst

c++ - 惰性构造 - 虚拟方法与 if-then stub setter/getter

我的问题的背景是我试图创建一个惰性网格结构,其中网格区域仅在需要时实例化,否则它们在查询时返回默认值。稍微归结一下这个问题,考虑一下我的情况的以下模型:structContainer{std::vectordata;floatget(intindexOuter,intindexInner){returndata[indexOuter].get(indexInner);}}我想stubBase::get在某些情况下函数总是返回相同的值,而在其他情况下我想返回某个数组中的值。我想象两种可能的解决方案。第一个解决方案是在Base上使用标志,即structBase{std::vectordat

c++ - 尝试实现无锁队列时发生堆栈溢出

我根据MagedM.Michael和MichaelL.Scott工作中指定的算法实现了一个无锁队列Simple,Fast,andPracticalNon-BlockingandBlockingConcurrentQueueAlgorithms(算法请跳转到第4页)我在shared_ptr上使用了原子操作,例如std::atomic_load_explicit等。当只在一个线程中使用队列时,一切都很好,但是当从不同线程中使用它时,我得到一个堆栈溢出异常。不幸的是,我无法追查问题的根源。似乎当一个shared_ptr超出范围时,它会减少下一个ConcurrentQueueNode的引用数量

c++ - 为什么 Boost 原子使用中的多生产者队列是无等待的

BoostAtomic示例中的无等待多生产者队列:templateclasswaitfree_queue{public:structnode{Tdata;node*next;};voidpush(constT&data){node*n=newnode;n->data=data;node*stale_head=head_.load(boost::memory_order_relaxed);do{n->next=stale_head;}while(!head_.compare_exchange_weak(stale_head,n,boost::memory_order_release));