C++链表报告功能

C++ linked list report function

本文关键字:功能 报告 链表 C++      更新时间:2023-10-16

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

我很难想出一种方法来使我的report_jobs功能工作。我希望输出看起来像这样

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
}

可能您想要执行的操作,我们使用以作业 ID 为键的哈希表或索引表,并在您迭代列表时使用开始和结束字节信息填充该条目。

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

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