小型网站建设多少钱,淮安做网站的有多少钱,软件开发需要哪些软件,简历免费下载模板仿照vector手动实现自己的myVector#xff0c;最主要实现二倍扩容功能
#include iostreamusing namespace std;template typename T
class Myvector
{T *data; //存储数据的数组int len; //当前数组的长度int mycapa; //容纳数据的总容量public://…仿照vector手动实现自己的myVector最主要实现二倍扩容功能
#include iostreamusing namespace std;template typename T
class Myvector
{T *data; //存储数据的数组int len; //当前数组的长度int mycapa; //容纳数据的总容量public://构造函数Myvector():data(NULL),len(0),mycapa(0){cout无参构造endl;}Myvector(int n, T a){data new T[n];len n;mycapa n;for(int i0;in;i){data[i]a;}cout有参构造endl;}//判空bool my_empty(){if(0 len){return 0;}return 1;}//判满bool my_full(){if(len mycapa){return 0;}return 1;}//在末尾插入一个元素int mypop_back(T a){if(0 mycapa){mycapa 1;data new T[1];}else if(len1 mycapa) //如果数组长度大于最大容量最大容量二倍扩容{mycapa 2*len;int *p new T[mycapa];for(int i0; ilen; i){p[i] data[i];}delete []data;data p;}data[len] a;len;}//任意插入void my_insert(int pos, T a){if(0 mycapa){mycapa 1;data new T[1];data[0] a;}else if(len1 mycapa){mycapa 2*len;int *p new T[mycapa];for(int i0; ipos; i){p[i] data[i];}p[pos] a;for(int ipos; ilen; i){p[i1] data[i];}delete []data;data p;}else{for(int ilen-1; ipos; i--){data[i1] data[i];}data[pos] a;}len;}//移除最后一个元素void mypop_back(){len--;cout移除最后一个元素成功endl;}//删除指定位置元素void my_erase(int pos){if(my_empty() poslen){cout删除失败endl;}for(int ipos; ilen; i){this-data[i-1] this-data[i];}len--;cout删除指定位置元素成功endl;}//展示void my_show(){cout展示元素;for(int i0; ilen; i){coutdata[i];cout ;}coutendl;}//返回能容纳的最大容量void my_capacity(){cout最大容量为mycapaendl;}//返回指定位置元素void my_at(int pos){cout第pos个元素是data[pos]endl;}//清空所有元素int my_clear(){cout已全部清空endl;return len0;}};using namespace std;int main()
{Myvectorint m(4,6); //有参构造创建了4个元素每个元素都是6m.my_show();m.mypop_back(7); //尾插m.mypop_back(8);m.my_show();m.my_capacity(); //返回最大容量此时为8cout***************************************endl;m.my_insert(5,9); //任意位置插入元素m.my_show();cout***************************************endl;m.my_erase(5); //任意位置删除元素m.my_show();cout***************************************endl;m.mypop_back(); //移除最后一个元素m.my_show();cout***************************************endl;m.my_at(2);m.my_clear(); //清空m.my_show();return 0;
}