主题:下面程序一部分是什么意思?
explicit Vector(int len=0):size(),max(len)
{data = new T[len];}
这是什么意思?
#include <iostream>
using namespace std;
typedef int T;
class Vector{
T* data;
int size;
int max;
void expend(){
max = 2*(max==0?1:max);
T* n = new T[max];
for(int i=0; i<size; i++){
n[i] = data[i];
}
delete[] data;
data = n;
}
public:
friend ostream&
operator<<(ostream&o,const Vector&v){
for(int i=0; i<v.size; i++){
o << v.data[i] << ' ';
}
return o;
}
explicit Vector(int len=0):size(),max(len)
{data = new T[len];}
~Vector(){delete[] data;}
Vector(const Vector& v){
size = v.size;
max = v.max;
data = new T[max];
for(int i=0; i<size; i++){
data[i] = v.data[i];
}
}
Vector& operator=(const Vector&v){
if(this==&v) return *this;
delete[] data;
data = new T[v.max];
for(int i=0; i<v.size; i++){
data[i] = v.data[i];
}
size = v.size;
max = v.max;
return *this;
}
//增加一个数据元素
void insert(const T& d){
insert(d, size);
}
void insert(const T& d, int pos){
if(pos<0||pos>size) pos=size;//越界放到最后
if(size==max){ expend();}
for(int i=size; i>pos; i--){
data[i] = data[i-1];
}
data[pos] = d;
size++;
}
{data = new T[len];}
这是什么意思?
#include <iostream>
using namespace std;
typedef int T;
class Vector{
T* data;
int size;
int max;
void expend(){
max = 2*(max==0?1:max);
T* n = new T[max];
for(int i=0; i<size; i++){
n[i] = data[i];
}
delete[] data;
data = n;
}
public:
friend ostream&
operator<<(ostream&o,const Vector&v){
for(int i=0; i<v.size; i++){
o << v.data[i] << ' ';
}
return o;
}
explicit Vector(int len=0):size(),max(len)
{data = new T[len];}
~Vector(){delete[] data;}
Vector(const Vector& v){
size = v.size;
max = v.max;
data = new T[max];
for(int i=0; i<size; i++){
data[i] = v.data[i];
}
}
Vector& operator=(const Vector&v){
if(this==&v) return *this;
delete[] data;
data = new T[v.max];
for(int i=0; i<v.size; i++){
data[i] = v.data[i];
}
size = v.size;
max = v.max;
return *this;
}
//增加一个数据元素
void insert(const T& d){
insert(d, size);
}
void insert(const T& d, int pos){
if(pos<0||pos>size) pos=size;//越界放到最后
if(size==max){ expend();}
for(int i=size; i>pos; i--){
data[i] = data[i-1];
}
data[pos] = d;
size++;
}