我正在尝试学习C++,所以如果这个问题表明我缺乏基础知识,请原谅我,你看,事实是,我缺乏基础知识。
我需要一些帮助来解决如何为我创建的类创建迭代器。
我有一个“形状”类,其中有一个点容器。
我有一个“Piece”类,它引用一个形状并定义该形状的位置。
Piece 没有 Shape,它只是引用 Shape。
我希望它看起来像 Piece 是点的容器,这些点与它引用的 Shape 的点相同,但添加了 Piece 位置的偏移量。
我希望能够迭代 Piece 的点,就像 Piece 本身就是一个容器一样。我做了一些阅读,但没有找到任何对我有帮助的东西。我将非常感谢任何指点。
/编辑:我明白了,这里实际上需要一个自己的迭代器(我首先误读了这个问题)。尽管如此,我仍然保留下面的代码,因为它在类似的情况下很有用。
这里真的需要一个自己的迭代器吗?也许将所有必需的定义转发到保存实际点的容器就足够了:
// Your class `Piece`
class Piece {
private:
Shape m_shape;
public:
typedef std::vector<Point>::iterator iterator;
typedef std::vector<Point>::const_iterator const_iterator;
iterator begin() { return m_shape.container.begin(); }
const_iterator begin() const { return m_shape.container.begin(); }
iterator end() { return m_shape.container.end(); }
const_iterator end() const { return m_shape.const_container.end(); }
}
这是假设您正在使用vector
内部,但类型可以很容易地进行调整。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)