我在这里创建自己的矢量类(用于作业):
private:
T *items;
int used;
Vector() {
used = 0;
items = new T[1000];
};
当我构造向量并使用:
std::cout<<sizeof(items)/sizeof(T);
它始终返回1,无论我在构造函数中创建项目的大小(我已经尝试过1000,4,1,0,-1)它总是cout的1.我也尝试在数组达到1000时加倍,然后2000然后4000等。
if(used == sizeof(items)/sizeof(items[0])) {
T *tempItems = new T [used];
memcpy(items, tempItems, sizeof(items));
delete []items;
T* items = new T[used*2];
memcpy(tempItems, items, sizeof(items));
delete []tempItems;
}
当我尝试打印项目的内容时,它会抛出无效的读取。这可能是由于先前的问题。我不能回到使用向量,这是作业的重点。