我正在用 C++ 编写自己的动态数组类(类似于 std::vector),并且在拥有包含动态数组的动态数组时遇到问题。
基本上,当拥有所有数据类型(int、double、float、std::string 等)的数组时,没有问题,并且该类的所有功能都很好用。
当数据类型是另一个数组时,尽管有些事情发生了混乱,并且在程序末尾出现了错误(free():在 tcache 2 中检测到双重释放)
全部代码:
动态数组.h:
#pragma once
#include <iostream>
namespace Utils
{
template <typename T>
class DynamicArray
{
private:
size_t array_length;
T* array;
public:
~DynamicArray();
DynamicArray();
DynamicArray(const int& initialLength);
void Print();
size_t GetLength() const;
void AddItem(const T& newItem);
// TODO: void AddItems(const T* newItemsArray);
void RemoveItem(int index);
T& GetItem(int index);
void SetItem(const int& index, const T& newValue);
T& operator [](int index) const;
void ResetArray(T resetValue);
};
}
#include "DynamicArray.cpp"
Run Code Online (Sandbox Code Playgroud)
动态数组.cpp:
#include "DynamicArray.h"
template<typename …Run Code Online (Sandbox Code Playgroud)