gpt4 book ai didi

c++ - 链表缓冲区;应该插入什么返回?

转载 作者:搜寻专家 更新时间:2023-10-31 01:02:53 24 4
gpt4 key购买 nike

如果这个问题以前出现过,请原谅我。

我已经为链表编写了有效的 void 插入函数,但我必须使函数与:

CyclicBuffer cbof4(4);
cbof4.insert(1).insert(2).insert(3).insert(4);

这是我的课:

class node
{
friend class CyclicBuffer;
public:
int value;
node* next;
node(int data)
{
next = NULL;
value = data;
}
};

class CyclicBuffer
{
private:
int _size;
node *head;
node *tail;
public:
void insert(int data);
void extract();
bool empty();
bool full();
int used();
void print();
CyclicBuffer(int size)
{
_size = size;
head = NULL;
tail = NULL;
}
};

和我的插入函数:

void CyclicBuffer::insert(int data)
{
node *p = new node(data);
p -> next = NULL;

if (tail == NULL)
{
tail = head = p;
}
else
{
head -> next = p;
head = p;
}
}

谁能给我一些建议,我的函数应该返回什么?

最佳答案

如果你想像那样链接,最简单的方法就是返回它自己:

CyclicBuffer& CyclicBuffer::insert(int data) {
// rest as before
return *this;
}

这样,

cbof4.insert(1).insert(2).insert(3).insert(4);

完全一样

cbof4.insert(1);
cbof4.insert(2);
cbof4.insert(3);
cbof4.insert(4);

关于c++ - 链表缓冲区;应该插入什么返回?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26344547/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com