Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/137.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ C++;链表报表功能_C++_Linked List - Fatal编程技术网

C++ C++;链表报表功能

C++ C++;链表报表功能,c++,linked-list,C++,Linked List,我创建了一个内存管理器程序,它使用链表中的节点,链表存储节点的作业编号以及节点使用的内存的开始和结束字节 我在想办法让我的报告作业功能正常工作时遇到了困难。我希望输出像这样 JOB Memory Usage 1 10 – 50 54 – 75 200 – 240 5 1 – 9 101 – 134 3 180 – 184 185 – 192 由于多个节点可能具有相同的作业,我很难确定如何循环执行此操作,以便它只

我创建了一个内存管理器程序,它使用链表中的节点,链表存储节点的作业编号以及节点使用的内存的开始和结束字节

我在想办法让我的
报告作业
功能正常工作时遇到了困难。我希望输出像这样

JOB         Memory Usage 

1           10 – 50 54 – 75 200 – 240 
5           1 – 9 101 – 134 
3           180 – 184 185 – 192
由于多个节点可能具有相同的作业,我很难确定如何循环执行此操作,以便它只打印一次作业,但要遍历所有节点,查看它是否具有该作业编号,然后打印开始和结束字节

这是我正在处理的一些示例代码,我肯定我把事情复杂化了,我只需要用一种更简单的方式来理解它

void report_jobs(void)
{
    ALLOCPTR t = alloclist;
    ALLOCPTR m = alloclist;
    int numberofnodes = 0;
    int job = 0;

while(m!=NULL)
{
 jobb++;

    while(t!=NULL)
    {
            if(t->id == job)
            {
                cout << t->id << t-> start_byte << t-> end_byte << endl;

            }
            t = t->next;


    }


   m = m->next

}
void报告\u作业(void)
{
ALLOCPTR t=alloclist;
ALLOCPTR m=alloclist;
int numberofnodes=0;
int job=0;
while(m!=NULL)
{
jobb++;
while(t!=NULL)
{
如果(t->id==作业)
{
cout id start\u byte end\u byte next;
}
m=m->next
}

您可能想做的是,我们使用一个哈希表或索引表键入作业id,并在迭代列表时用开始和结束字节信息填充该条目

然后,在表上再次传递以生成输出

for (i in alloclist) {
    table[i->id].populate(i->start_byte, i->end_byte);
}

for (j in table) {
    std::cout << table[j];
}
for(alloclist中的i){
表[i->id]。填充(i->开始字节,i->结束字节);
}
对于(表中的j){

std::为什么不把这些信息放在一个dict中并输出呢?这并不是很简单。你需要聚合(排序?)与作业相关的地址范围。根据您期望的用例,您需要一些隐藏的东西才能正常运行。例如,如果您需要使用的作业ID的边界较低,您可以创建一个包含起始字节和结束字节的结构,并创建此结构的链接列表的适当长的向量e来组织数据。如果作业ID变得疯狂,您可以使用该结构的链接列表的散列。