gpt4 book ai didi

C++:指针和抽象数组类

转载 作者:太空宇宙 更新时间:2023-11-04 16:23:36 24 4
gpt4 key购买 nike

我对指针比较陌生,写了这个合并函数。这是指针的有效使用吗?其次是 *two 变量,合并时不应该删除它,对吗?那将是客户的任务,而不是实现者?

VectorPQueue *VectorPQueue::merge(VectorPQueue *one, VectorPQueue *two) {
int twoSize = two->size();

if (one->size() != 0) {
for (int i = 0; i < twoSize;i++)
{
one->enqueue(two->extractMin());
}
}
return one;

交换函数是这样调用的

one->merge(one, two);

将这两个对象传递给它进行合并

PQueue *one = PQueue::createPQueue(PQueue::UnsortedVector);
PQueue *two = PQueue::createPQueue(PQueue::UnsortedVector);

最佳答案

在你的情况下,指针是完全没有必要的。您可以简单地使用引用。

也没有必要传入调用成员函数的参数。您可以使用 this 指针获取调用成员函数的对象。

/// Merge this with other.
void VectorPQueue::merge(VectorPQueue& other) {
// impl
}

总的来说:通过继承实现容器并不是真正的首选方式。查看标准库以及它如何实现序列抽象(迭代器)。

关于C++:指针和抽象数组类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14285726/

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