#include <iostream>
template <class T>
class Vector{
public:
typedef T value_type;
typedef T * iterator;
typedef size_t size_type;
private:
value_type * data;
size_type size;
size_type totalSize;
public:
// default constructor(empty)
Vector(void):data(nullptr),size(0),totalSize(0){};
// deconstructor
~Vector(void){
delete[] data;
data = nullptr;
}
// expansion
void expansion(size_type val){
if (val <= totalSize){
return;
}
value_type * temp = new value_type(val);
for (size_type i = 0; i < size; ++i){
temp[i] = data[i];
}
delete[] data;
data = temp;
totalSize = val;
}
// modifiers
public:
void push_back(value_type val);
};
template <class T>
void Vector<T>::push_back(value_type val){
if (totalSize == 0){
size = totalSize = 1;
data = new value_type(totalSize);
}
else if (size + 1 > totalSize){
this->expansion(totalSize * 2);
}
data[size] = val;
size++;
}
int main(){
Vector<int> vec;
vec.push_back(10);
vec.push_back(20);
}

断点调试到该处时出现未知信号,一直找不到问题出在哪里。