问题描述
我试图学习C ++和编程,因此我正在STL中实现某些数据结构。
至于我的vector版本,我有两个构造函数,如果可以的话,其中一个可以让您指定内存中的存储位置。如果没有,我将内部数据的地址设置为nullptr。
我想知道这将如何表现。使用第一个构造函数,我假设将m_data
设置为nullptr
,但是在第二种情况下会发生什么呢?首先将m_data
设置为nullptr
,然后在构造中将其覆盖吗?是否有理由在定义中将定义保留为nullptr
,还是在两种情况下都应仅使用初始化列表?
代码如下:
template <typename T,size_t S = 0>
class custom::vector {
private:
T* m_data = nullptr;
size_t m_size;
size_t m_capacity;
T* m_future_data = nullptr;
size_t m_future_cap;
public:
// Constructors
vector() : m_size(S),m_capacity(S) {}
vector(T* destination,const size_t& capacity) : m_size(S) {
m_data = destination;
m_capacity = capacity;
}
// .... rest of class
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)