问题描述:
求牛人帮忙注释程序
请尽量详细点,实在看不懂了
//Vector.h
#ifndef _QT_VECTOR_H_INCLUDED_
#define _QT_VECTOR_H_INCLUDED_
#include
/*
templateclass Vector
assume T has trial destructor
*/
template
class Vector
{
public:
typedef T* Iterator;
private:
T* elem_;
int size_;
int capacity_;
protected:
int next_capacity(void) const
{
return capacity_ 0)
{
elem_ = (T*) malloc(n*sizeof(T));
//assume(elem_ = 0);
std::uninitialized_fill(elem_,elem_ + n,t);
}
}
virtual Vector(void)
{
free(elem_);
elem_ = 0; //not necessary but recommended
}
int size(void) const
{
return size_;
}
int capacity(void) const
{
return capacity_;
}
bool empty(void) const
{
return size_ == 0;
}
void clear(void)
{
size_ = 0;
}
T* begin(void) const
{
return elem_;
}
T* end(void) const
{
return elem_ + size_;
}
T& front(void) const
{
return elem_[0];
}
T& back(void) const
{
return elem_[size_ -1];
}
void reserve(int n)
{
if(n > capacity_)
{
elem_ = (T*)realloc(elem_,n*sizeof(T));
//assume(elem_ = 0);
capacity_ = n;
}
}
void erase(Iterator pos)
{
memmove(pos,pos+1,sizeof(T)*(elem_ + --size_ - pos));
}
T& operator[](int n) const
{ // 0 erase(first);
}
};//~class Vector
//#include "Vector_impl.h"
#endif //~#ifndef _QT_VECTOR_H_INCLUDED_
//~Vector.h
请尽量详细点,实在看不懂了
//Vector.h
#ifndef _QT_VECTOR_H_INCLUDED_
#define _QT_VECTOR_H_INCLUDED_
#include
/*
templateclass Vector
assume T has trial destructor
*/
template
class Vector
{
public:
typedef T* Iterator;
private:
T* elem_;
int size_;
int capacity_;
protected:
int next_capacity(void) const
{
return capacity_ 0)
{
elem_ = (T*) malloc(n*sizeof(T));
//assume(elem_ = 0);
std::uninitialized_fill(elem_,elem_ + n,t);
}
}
virtual Vector(void)
{
free(elem_);
elem_ = 0; //not necessary but recommended
}
int size(void) const
{
return size_;
}
int capacity(void) const
{
return capacity_;
}
bool empty(void) const
{
return size_ == 0;
}
void clear(void)
{
size_ = 0;
}
T* begin(void) const
{
return elem_;
}
T* end(void) const
{
return elem_ + size_;
}
T& front(void) const
{
return elem_[0];
}
T& back(void) const
{
return elem_[size_ -1];
}
void reserve(int n)
{
if(n > capacity_)
{
elem_ = (T*)realloc(elem_,n*sizeof(T));
//assume(elem_ = 0);
capacity_ = n;
}
}
void erase(Iterator pos)
{
memmove(pos,pos+1,sizeof(T)*(elem_ + --size_ - pos));
}
T& operator[](int n) const
{ // 0 erase(first);
}
};//~class Vector
//#include "Vector_impl.h"
#endif //~#ifndef _QT_VECTOR_H_INCLUDED_
//~Vector.h
问题解答:
我来补答展开全文阅读