【发布时间】:2020-04-11 21:08:02
【问题描述】:
我正在为长期内存管理实现一个超级简单的容器,该容器将包含在一个数组中。
我想知道,下面这两种方法的实际含义是什么?
template<class T, size_t C>
class Container
{
public:
T objects[C];
};
还有:
template<class T>
class Container
{
public:
Container(size_t cap)
{
this->objects = new T[cap];
}
~Container()
{
delete[] this->objects;
}
T* objects;
};
请记住,这些只是最小的示例,我没有考虑存储容量、虚拟大小等因素。
【问题讨论】:
-
我真的会忘记这一点,因为你用 C++ 标记了这个问题。使用 std::vector 和 std::array。
-
如果你的容器大小在编译时是已知的,选择第一个,否则选择第二个。在这两种情况下,请按照@mfnx 的建议选择
std::array和std::vector。 -
这感觉有点像essay风格的问题。可能有点宽泛。
标签: c++ memory containers