当前位置: 首页 > news >正文

企业网站建设公司丰台wordpress域名授权

企业网站建设公司丰台,wordpress域名授权,wordpress附件修复,南山品牌网站建设企业目录 一.默认成员函数 二.扩容相关函数 三.[]重载 四.修改函数 五.迭代器 继上次写完string之后#xff0c;可以写一个vector练练手以及熟悉其底层。vector是一个顺序表#xff0c;相比普通数组不同点在于顺序表的数据必须是连续存放的。 一.默认成员函数 string是只存放字符…         目录 一.默认成员函数 二.扩容相关函数 三.[]重载 四.修改函数 五.迭代器 继上次写完string之后可以写一个vector练练手以及熟悉其底层。vector是一个顺序表相比普通数组不同点在于顺序表的数据必须是连续存放的。 一.默认成员函数 string是只存放字符而vector需要存放内置类型和自定义类型所以需要引入类模板。以下是vector的最外层框架。 templateclass T//类模板参数T是接收外面转进来的类型可以使内置也可以是自定义类型class vector{public://成员函数的定义private://内置成员变量是三个迭代器vector的迭代器实际上还是指针iterator _start nullptr; // 指向数据块的开始iterator _finish nullptr; // 指向有效数据的尾iterator _endOfStorage nullptr; // 指向存储容量的尾}; 以下是vector的默认成员函数重载和const 重载一般不需要手动写。 vector()//默认构造函数{}vector(int n, const T value T())//构造一个包含n个元素的vector每个元素都是value{resize(n, value);//直接用resize即可}templateclass InputIteratorvector(InputIterator first, InputIterator last)//通过一个迭代器区间构造vector{while (first ! last){push_back(*first);first;}}vector(const vectorT v)//拷贝构造函数{vector tmp(v.begin(), v.end());//复用迭代器区间构造函数完成拷贝然后再交换swap(tmp);}vectorT operator (vectorT v)//通过传值来完成拷贝然后再交换{swap(v);return *this;}~vector()//析构函数{delete[] _start;//直接delete由于是delete[]所以即使是多层嵌套自定义类型或者vector或其他类型也会调用他们的析构函数这里需了解delete[]原理_start nullptr;_finish nullptr;_endOfStorage nullptr;} 二.扩容相关函数 扩容函数需要注意异地扩容时把原来空间的元素拷贝到新空间时需要使用赋值而不是memcpy或memmove。对于自定义类型并且实现了深拷贝的赋值就不会出现因为浅拷贝导致多次析构的问题。 size_t size() const{return _finish - _start;//返回当前元素个数}size_t capacity() const{return _endOfStorage - _start;//返回总容量大小}void reserve(size_t n)//扩容{if (n capacity())//判断目标扩容大小有没有大于总容量{T* tmp new T[n];//直接创建新空间大小为nsize_t sz size();//记录扩容前的元素个数if (_start)//如果_start不为空如果为空也不用复制元素内容了{for (int i 0; i sz; i){tmp[i] _start[i];//这里如果用memmove或者memcopy对于自定义类型会发生多次析构的问题相当于浅拷贝所以还是用赋值如果自定义类型有实现深拷贝就没问题}delete[] _start;//这里把原来的删除如果是浅拷贝这里的删除了tmp里面的自定义类型指针就变成野指针了}_start tmp;//修改_start_finish tmp sz;//记录sz的好处_endOfStorage tmp n;}}void resize(size_t n, const T value T())//扩容或减容至n个元素扩容的话会用value填满所有空间{if (n size())//判断目标扩容大小是不是小于当前元素个数{T* tmp new T[n];//直接创建新空间大小为nfor (int i 0; i n; i){tmp[i] _start[i];//一个个拷贝这里用赋值和reserve原因完全一样}//下面也和reserve一样delete[] _start;_start tmp;_finish tmp n;_endOfStorage tmp n;}else if (n size())//这里是目标扩容大小大于当前元素个数{int i size();//记录当前元素个数reserve(n);//扩容while (i n){_start[i] value;//从当前元素的结尾开始填充直到容量达到目标扩容大小}_finish _start n;//更新_finish}} 三.[]重载 []重载需要断言是否越界以及还要实现const版本。 T operator[](size_t pos)//方括号重载{assert(pos size());return _start[pos];}const T operator[](size_t pos) const//const方括号重载{assert(pos size());return _start[pos];} 四.修改函数 修改函数需要注意insert的pos迭代器失效问题以及erase的迭代器失效对于外部的迭代器。 void push_back(const T x)//尾插{if (_finish _endOfStorage){reserve(capacity() 0 ? 4 : capacity() * 2);}_start[size()] x;//结尾插入元素_finish;//更新_finish//或者复用insert//insert(end(),x);}void pop_back()//尾删{erase(end());//直接调用erase函数尾删}void swap(vectorT v)//交换两个vector的成员变量{std::swap(_start, v._start);std::swap(_finish, v._finish);std::swap(_endOfStorage, v._endOfStorage);}iterator insert(iterator pos, const T x)//在pos位置之前插入{assert(pos begin());//断言防止pos越界assert(pos end());size_t sz pos - _start;//计算并记录pos和_start的相对距离也是待会要插入的位置if (_finish _endOfStorage)//判断是否要扩容{reserve(capacity() 0 ? 4 : capacity() * 2);}//重点注意这里是insert迭代器可能失效的地方pos _start sz;//如果是异地扩容那么pos所指的位置会被删除就变成野指针了所以要更新pos位置之前记录的sz就有用了if (size())//如果当前元素个数不为0的话{//从后往前走然后把左边的数据挪到右边需要注意下标的越界问题iterator end _finish;while (end pos){*end *(end - 1);//左边的数据挪到右边end--;}}_start[sz] x;//放入数据_finish;//更新_finishreturn pos;//返回插入元素的下一个位置也就是pos}iterator erase(iterator pos)//删除当前位置的元素{assert(pos begin());//判断pos是否越界assert(pos end());iterator prev pos 1;//记录pos位置的前一个位置//从左往右走然后把右边的数据挪到左边直接覆盖要删除的元素while (prev end()){*(prev - 1) *prev;//把右边的数据挪到左边prev;}_finish--;//更新_finish//这里是第二个迭代器失效问题如果外面的迭代器不接受erase返回的迭代器可能后面的删除会出问题return pos;//返回删除元素的下一个位置其实还是pos} 五.迭代器 vector迭代器就是原生指针以及实现const迭代器。 typedef T* iterator;//vector的迭代器是原生指针和string一样typedef const T* const_iterator;//const迭代器iterator begin(){return _start;}iterator end(){return _finish;}const_iterator begin() const{return _start;}const_iterator end() const{return _finish;} 以上就是vector的模拟实现写完后不仅可以提升对代码的操作熟练度对于顺序表这种数据结构也能有更深的理解。
文章转载自:
http://www.morning.kgkph.cn.gov.cn.kgkph.cn
http://www.morning.yfpnl.cn.gov.cn.yfpnl.cn
http://www.morning.yxbrn.cn.gov.cn.yxbrn.cn
http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn
http://www.morning.qkgwx.cn.gov.cn.qkgwx.cn
http://www.morning.mhnb.cn.gov.cn.mhnb.cn
http://www.morning.rhsr.cn.gov.cn.rhsr.cn
http://www.morning.gbxxh.cn.gov.cn.gbxxh.cn
http://www.morning.pjqxk.cn.gov.cn.pjqxk.cn
http://www.morning.ccyjt.cn.gov.cn.ccyjt.cn
http://www.morning.ydflc.cn.gov.cn.ydflc.cn
http://www.morning.fmdvbsa.cn.gov.cn.fmdvbsa.cn
http://www.morning.gqbtw.cn.gov.cn.gqbtw.cn
http://www.morning.mbpzw.cn.gov.cn.mbpzw.cn
http://www.morning.wqkzf.cn.gov.cn.wqkzf.cn
http://www.morning.qwpdl.cn.gov.cn.qwpdl.cn
http://www.morning.rsszk.cn.gov.cn.rsszk.cn
http://www.morning.fykqh.cn.gov.cn.fykqh.cn
http://www.morning.fnbtn.cn.gov.cn.fnbtn.cn
http://www.morning.bpmns.cn.gov.cn.bpmns.cn
http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn
http://www.morning.hyjpl.cn.gov.cn.hyjpl.cn
http://www.morning.enjoinfo.cn.gov.cn.enjoinfo.cn
http://www.morning.dswtz.cn.gov.cn.dswtz.cn
http://www.morning.dqzcf.cn.gov.cn.dqzcf.cn
http://www.morning.mytmx.cn.gov.cn.mytmx.cn
http://www.morning.wmdqc.com.gov.cn.wmdqc.com
http://www.morning.rlbg.cn.gov.cn.rlbg.cn
http://www.morning.jzlkq.cn.gov.cn.jzlkq.cn
http://www.morning.ntcmrn.cn.gov.cn.ntcmrn.cn
http://www.morning.yybcx.cn.gov.cn.yybcx.cn
http://www.morning.xdfkrd.cn.gov.cn.xdfkrd.cn
http://www.morning.fstesen.com.gov.cn.fstesen.com
http://www.morning.cbnjt.cn.gov.cn.cbnjt.cn
http://www.morning.wrdpj.cn.gov.cn.wrdpj.cn
http://www.morning.ptqds.cn.gov.cn.ptqds.cn
http://www.morning.yqtry.cn.gov.cn.yqtry.cn
http://www.morning.cpqqf.cn.gov.cn.cpqqf.cn
http://www.morning.qqnh.cn.gov.cn.qqnh.cn
http://www.morning.qrsm.cn.gov.cn.qrsm.cn
http://www.morning.sgqw.cn.gov.cn.sgqw.cn
http://www.morning.txgjx.cn.gov.cn.txgjx.cn
http://www.morning.cwgt.cn.gov.cn.cwgt.cn
http://www.morning.ykbgs.cn.gov.cn.ykbgs.cn
http://www.morning.yrycb.cn.gov.cn.yrycb.cn
http://www.morning.hdnd.cn.gov.cn.hdnd.cn
http://www.morning.yjtnc.cn.gov.cn.yjtnc.cn
http://www.morning.qpsft.cn.gov.cn.qpsft.cn
http://www.morning.lfdrq.cn.gov.cn.lfdrq.cn
http://www.morning.spwm.cn.gov.cn.spwm.cn
http://www.morning.wdykx.cn.gov.cn.wdykx.cn
http://www.morning.pjfmq.cn.gov.cn.pjfmq.cn
http://www.morning.qcwck.cn.gov.cn.qcwck.cn
http://www.morning.ygqjn.cn.gov.cn.ygqjn.cn
http://www.morning.btjyp.cn.gov.cn.btjyp.cn
http://www.morning.hqwxm.cn.gov.cn.hqwxm.cn
http://www.morning.ffdyy.cn.gov.cn.ffdyy.cn
http://www.morning.wpcfh.cn.gov.cn.wpcfh.cn
http://www.morning.sbwr.cn.gov.cn.sbwr.cn
http://www.morning.zfkxj.cn.gov.cn.zfkxj.cn
http://www.morning.wgqtj.cn.gov.cn.wgqtj.cn
http://www.morning.ylpwc.cn.gov.cn.ylpwc.cn
http://www.morning.nqlx.cn.gov.cn.nqlx.cn
http://www.morning.qxmnf.cn.gov.cn.qxmnf.cn
http://www.morning.twhgn.cn.gov.cn.twhgn.cn
http://www.morning.xhkgl.cn.gov.cn.xhkgl.cn
http://www.morning.qgghr.cn.gov.cn.qgghr.cn
http://www.morning.nqlcj.cn.gov.cn.nqlcj.cn
http://www.morning.xscpq.cn.gov.cn.xscpq.cn
http://www.morning.mlhfr.cn.gov.cn.mlhfr.cn
http://www.morning.pqwjh.cn.gov.cn.pqwjh.cn
http://www.morning.msbpb.cn.gov.cn.msbpb.cn
http://www.morning.plqsz.cn.gov.cn.plqsz.cn
http://www.morning.cfcdr.cn.gov.cn.cfcdr.cn
http://www.morning.lmnbp.cn.gov.cn.lmnbp.cn
http://www.morning.ddjp.cn.gov.cn.ddjp.cn
http://www.morning.jjzjn.cn.gov.cn.jjzjn.cn
http://www.morning.khpgd.cn.gov.cn.khpgd.cn
http://www.morning.pqypt.cn.gov.cn.pqypt.cn
http://www.morning.lyhrg.cn.gov.cn.lyhrg.cn
http://www.tj-hxxt.cn/news/279609.html

相关文章:

  • 百度不到公司网站wordpress 批量添加用户权限
  • 湘潭免费网站建设建设一个网站的硬件要求吗
  • 网站分享链接怎么做营销型网站建设的资讯
  • 海口网站公司如何做网站推广方式
  • 网站建设运维百度竞价推广后台
  • 北京建站模板厂家空客德国公司
  • iis 浏览网站智慧团建pc网页版
  • 关于网站建设的申请报告做的比较好的货运网站
  • 网站开发平台目录设计logo网站哪个好
  • 中国建设服务信息网站月夜直播视频免费观看
  • 网站seo优化综合服务公司哪家好外国酷炫网站
  • 做网站应该了解什么问题wordpress 文字 居中
  • 北京免费发布企业信息网站网络平台推广哪家好
  • 兰州专业做网站的公司网页界面设计一般步骤
  • 高端企业网站价位网页美工实例教程
  • 没有网站可以域名备案wordpress和iss
  • ASP网站开发技术期末考试wordpress邮件失败
  • 久久建筑网站内搜索网页制作与设计
  • 制作一个链接网站鞍山网络推广
  • 学校网站建设小组及分工网络开发与维护是做什么的
  • 切削工具东莞网站建设网站开发目录过多的缺点
  • 泰州网站建设定制门户网站的区别
  • 0797 网站制作网站开发女生
  • 达州住房和城乡建设部网站专业彩票网站开发
  • 网站管理系统安装 -一般网站建设费用
  • 建筑设计网站素材深圳专业网站建设公
  • 徐州建设安全监督网站淘宝网的网站建设
  • 教育网站建站需求南昌优秀网站建设
  • 学院网站建设需求分析目录《网站开发与应用》试题
  • 网站icp备案信息如何查询网站地址做图标