当前位置 :
求牛人帮忙注释程序请尽量详细点,实在看不懂了//Vector.h#ifndef_QT_VECTOR_H_INCLUDED_#define_QT_VECTOR_H_INCLUDED_#include/*templateclassVectorassumeThastrialdestructor*/templateclassVector{public:typedefT*Iterator;privat
1人问答
八字精批爱情运势每月运势生肖运势
问题描述:

求牛人帮忙注释程序

请尽量详细点,实在看不懂了

//Vector.h

#ifndef_QT_VECTOR_H_INCLUDED_

#define_QT_VECTOR_H_INCLUDED_

#include

/*

templateclassVector

assumeThastrialdestructor

*/

template

classVector

{

public:

typedefT*Iterator;

private:

T*elem_;

intsize_;

intcapacity_;

protected:

intnext_capacity(void)const

{

returncapacity_0)

{

elem_=(T*)malloc(n*sizeof(T));

//assume(elem_=0);

std::uninitialized_fill(elem_,elem_+n,t);

}

}

virtualVector(void)

{

free(elem_);

elem_=0;//notnecessarybutrecommended

}

intsize(void)const

{

returnsize_;

}

intcapacity(void)const

{

returncapacity_;

}

boolempty(void)const

{

returnsize_==0;

}

voidclear(void)

{

size_=0;

}

T*begin(void)const

{

returnelem_;

}

T*end(void)const

{

returnelem_+size_;

}

T&front(void)const

{

returnelem_[0];

}

T&back(void)const

{

returnelem_[size_-1];

}

voidreserve(intn)

{

if(n>capacity_)

{

elem_=(T*)realloc(elem_,n*sizeof(T));

//assume(elem_=0);

capacity_=n;

}

}

voiderase(Iteratorpos)

{

memmove(pos,pos+1,sizeof(T)*(elem_+--size_-pos));

}

T&operator[](intn)const

{//0erase(first);

}

};//~classVector

//#include"Vector_impl.h"

#endif//~#ifndef_QT_VECTOR_H_INCLUDED_

//~Vector.h

姜定祥回答:
  //Vector.h   #ifndef_QT_VECTOR_H_INCLUDED_//编译预处理让此头文件只能被加入一次,效果同微软的:#pragmaonce   #define_QT_VECTOR_H_INCLUDED_   #include//对内存操作的头文件   /*提供了内存操作相关的一些函数及声明,如:   externvoid*memchr(constvoid*,int,size_t);   externvoid*memccpy();   externvoid*memchr();   externvoid*memcpy();   externvoid*memset();   externintmemcmp();   如果你的程序中有用到这些函数的话,必须包含该头文件.   */   /*   templateclassVector   assumeThastrialdestructor   */   template//定义模板类   classVector//向量类   {   public:   typedefT*Iterator;//T指针变量的别名Iterator专业点来说叫迭代器(参见STL)   private://成员变量   T*elem_;//element成员   intsize_;//size大小   intcapacity_;//容量   protected:   intnext_capacity(void)const   {   //容量是否小于等于0呢?是,返回1.否,返回2*容量   returncapacity_0)   {   elem_=(T*)malloc(n*sizeof(T));//为其分配T*类型的n倍大小的空间   //assume(elem_!=0);   std::uninitialized_fill(elem_,elem_+n,t);   /*意外安全和正确地摧毁对象.标准函数std::uninitialized_copy和std::uninitialized_fill是两个很有用的工具.*/   }   }   virtualVector(void)//析构函数   {   free(elem_);//释放内存   elem_=0;//notnecessarybutrecommended   }   intsize(void)const//返回大小   {   returnsize_;   }   intcapacity(void)const//返回容量   {   returncapacity_;   }   boolempty(void)const//查看是否为空   {   returnsize_==0;   }   voidclear(void)//将大小设置为0   {   size_=0;   }   T*begin(void)const//返回成员指针   {   returnelem_;   }   T*end(void)const//返回最后一个指针   {   returnelem_+size_;   }   T&front(void)const//返回第一个数据成员   {   returnelem_[0];   }   T&back(void)const//返回最后一个(从0开始所以要-1)   {   returnelem_[size_-1];   }   voidreserve(intn)//重新分配   {   if(n>capacity_)//当传入的数据已经超过总容量时   {   elem_=(T*)realloc(elem_,n*sizeof(T));//重新分配   //assume(elem_!=0);   capacity_=n;//分配大小   }   }   voiderase(Iteratorpos)//迭代器   {   //刚开始插入的头文件开始用了.   //将一块缓冲区中的数据移动到另一块缓冲区中.   memmove(pos,pos+1,sizeof(T)*(elem_+--size_-pos));   }   T&operator[](intn)const//重载[]   {//0erase(first);   }   };//~classVector   //#include"Vector_impl.h"   #endif//~#ifndef_QT_VECTOR_H_INCLUDED_   //~Vector.h
八字精批 八字合婚 八字起名 八字财运 2024运势 测终身运 生肖运势 十年大运
已出生未出生
单身有伴
最新更新
PC端 | 移动端 | mip端
字典翻译(zidianfy.com)汇总了汉语字典,新华字典,成语字典,组词,词语,在线查字典,中文字典,英汉字典,在线字典,康熙字典等等,是学生查询学习资料的好帮手,是老师教学的好助手。
声明:本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
电话:  邮箱:
Copyright©2009-2021 字典翻译 zidianfy.com 版权所有 闽ICP备2022014709号-7
lyric 頭條新聞
复制重新加载
原创不易,您的支持将成为鼓励我的动力
《求牛人帮忙注释程序请尽量详细点,实在看不懂了//Vector.h#ifndef_QT_VECTOR_H_INCLUDED_#define_QT_VECTOR_H_INCLUDED_#include/*templateclassVectorassumeThastrialdestructor*/templateclassVector{public:typedefT*Iterator;privat|其它问答-字典翻译问答网》
1、付费复制方式
支付宝付费后即可复制当前文章
限时特价:5.99元
原价:20元
打开支付页
2、微信付费复制方式
微信扫码付费后即可复制当前文章
限时特价:5.99元
原价:20元