附加并清除列表C
Append and clear for a list c++
我正在尝试实现两个METHDS append()
和clear()
。
在appened()
中,我需要newPoint
到列表的末尾。如果列表为空,则将newpoint添加为列表中的第一个(和唯一(点。
在clear()
中,我需要删除列表中的所有点。
您可以给我一些建议以实现appened and clear
。这是一个代码:
//
#pragma once
const int maxListSize = 10;
class Point
{
private:
float x;
float y;
public:
Point(float x0 = 0, float y0 = 0)
{
x = x0;
y = y0;
}
};
class PointList
{
private:
//Data members
int size;
int cursor;
Point points[maxListSize];
public:
PointList();
//List Manipalution operations
void append(Point newPoint);
void clear();
~PointList();
};
*我不需要你为我写所有东西,只要给我一些建议即可。我想一个人意识到这一点。谢谢您的帮助。
因为您按值(Point points[maxListSize]
(存储列表元素,这很容易做:
PointList() :size(0) {}
void append(Point newPoint) { points[size++] = newPoint; }
void clear() { size = 0; }
这假定您的Point
对象没有管理任何资源,这对于此特定示例是正确的。否则,应清除插入点对象。
获取可能期望附加新项目并清除现有项目的语义,我建议您查看新的新操作员,并手动调用项目的destuructor在列表中。
当前,当您创建列表时,您的班级将构建列表中的所有项目。对于复杂的结构来说,这可能很耗时。然后,随着项目已经构造,您将调用复制分配运算符,而不是为您所调用的元素构造函数。
。如果您将数组存储为
char * points[sizeof(Point)*maxListSize];
任何仅在实际添加的项目中初始初始初始初始化的,您可以避免创建列表时的施工成本。
您的附录函数按值逐值。相反,我建议您有两个附录功能。一个采用const&,另一种是获得rvalue-reference。然后,在附加功能中,在数组中下一个位置的地址上调用位置新操作员。
要清除数组,一个简单地调用数组中每个元素的击曲线。
相关文章:
- Pybind11:将元组列表从Python传递到C++
- 从链接列表c++中删除一个项目
- 如何(从固定列表中)选择一个数字序列,该序列将与目标数字相加
- C++如何通过用户输入删除列表元素
- 读取文件的最后一行并输入到链接列表时出错
- 复制列表初始化的隐式转换的等级是多少
- LNK2038、MSVS2017 MAGMA的原因列表
- 不能在初始值设定项列表中将非常量表达式从类型 'int' 缩小到'unsigned long long'
- 没有为自己的结构调用列表推回方法
- 使用简单类型列表实现的指数编译时间.为什么
- 一对向量构造函数:初始值设定项列表与显式构造
- 标准是否使用多余的大括号(例如 T{{{10}}})定义列表初始化?
- 清除 C++ 中的指针的 STL 列表
- 附加并清除列表C
- 如何清除对列表
- 清除临时列表而不清除我将其分配到的位置
- 清除Linux内核链接列表
- 清除 std::动态对象列表的最快方法是什么?
- 在嵌套的for循环中清除列表中的值
- 挂在提升相邻列表上清除