类和cons引用。。。[英] classes and cons reference...

问题描述

大家好,
我正在处理,可能很简单的问题,但是我不知道该怎么做
做和我的思维方式是否正确..
任务是实现 ListOfElements 类的对象列表
然后实现一个函数,将反转
的顺序列表中的元素,但函数应如下所示:

ListOfElements 反向(const ListOfElements&)

据我了解,我应该创建一个这些对象的列表,
我知道该怎么做.我对反向功能有困难.什么
这真的意味着它作为参数需要 ListOfElements&?是
这是对第一个对象的引用,即.指向第一个的指针
对象?

假设我们有以下内容:

类 ListOfElements
{
私人:
整数数据;
ListOfElements * 下一个;//指向
上的下一个元素列表
公开:
ListOfElements();
~ListOfElements();
addNewElement (int new_data);
}

ListOfElements * 头 = NULL;指向第一个元素的指针

我现在如何实现反向?倒车的算法不是
问题,我不知道如何处理常量引用和
返回一个对象...

推荐答案

1337-chixor;) 写道:
大家好,
我正在处理,可能很简单的问题,但是我不知道该怎么做
做和我的思维方式是否正确..
任务是实现 ListOfElements 类的对象列表
然后实现一个函数,将反转
的顺序列表中的元素,但函数应如下所示:

ListOfElements 反向 (const ListOfElements&)
为什么不使用排序容器(std:map 或 std::set)并使用反向
迭代器来遍历它们,还是将它们复制到另一个容器?<​​br/>
--
伊恩·柯林斯.

"1337-chixor;)"<ne*********@gmail.com 在留言中写道
新闻:11**********************@o5g2000hsb.googlegro ups.com...
大家好,
我正在处理,可能很简单的问题,但是我不知道该怎么做
做和我的思维方式是否正确..
任务是实现 ListOfElements 类的对象列表
然后实现一个函数,将反转
的顺序列表中的元素,但函数应如下所示:

ListOfElements 反向 (const ListOfElements&)
您的参数是对恒定的 ListOfElements 的引用.哪个
表示您不要更改传入的列表.然后你需要创建
一份.

在我看来,一个简单的方法就是创建一个 ListOfObjects
在这个函数里面.然后从传入的列表开始插入
向后.IE.从后面开始阅读并插入到最后.那么
返回您创建的 ListOfObjects.

您很可能可以使用标准算法.复制什么的.
我还没有使用它们,所以我只会使用 for 循环.

这个问题听起来很像家庭作业(不确定是不是)
所以我不愿意展示代码.
据我了解,我应该创建一个这些对象的列表,
我知道该怎么做.我对反向功能有困难.什么
这真的意味着它作为参数需要 ListOfElements&?是
这是对第一个对象的引用,即.指向第一个的指针
对象?

假设我们有以下内容:

类 ListOfElements
{
私人:
整数数据;
ListOfElements * 下一个;//指向
上的下一个元素列表
公开:
ListOfElements();
~ListOfElements();
addNewElement (int new_data);
}

ListOfElements * 头 = NULL;指向第一个元素的指针

我现在如何实现反向?倒车的算法不是
问题,我不知道如何处理常量引用和
返回一个对象...
常量引用意味着您可以将参数视为实例,您
就是不能改变它(或者调用我不认为的类的非常量方法).


我看到的问题是返回列表的头部必须是
分配在堆栈上,其余节点分配在
堆,如果析构函数调用 delete next 那么赋值是
不可能的.按值返回将调用默认副本
构造函数,因此两个列表头将指向相同的尾列表
元素,然后当本地副本超出范围时,它将销毁
他们都是.


本文地址:https://www.itbaoku.cn/post/1050391.html