我有以下问题.考虑这些课程
class face {
virtual std::vector<ptr>& get_vertices(void) const = 0;
};
class triangle : public face {
private:
std::vector<ptr> vertices;
public:
std::vector<ptr>& get_vertices(void) const { return vertices; };
};
class quadrilateral : public face {
private:
std::vector<ptr> vertices;
public:
std::vector<ptr>& get_vertices(void) const { return vertices; };
};
Run Code Online (Sandbox Code Playgroud)
显然,三角形和四边形将始终分别具有3和4个顶点.因此,我想用适当大小的std :: array交换std :: vector,以节省由std :: vector中的三个附加指针引起的开销.(这是因为我将拥有数以百万计的面孔......)现在,是否有机会在std :: array面前拥有一个公共访问函数,就像上面的std :: vector一样?使用标准C数组,我只需返回指向第一个数组条目及其大小的指针.是否有STL方式来做同样的事情或类似的事情?或者还有其他很好的方法来实现这个功能吗?
感谢阅读和可能的回答!! 安德烈亚斯