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

php响应式网站开发百度云外贸网站建设论坛

php响应式网站开发百度云,外贸网站建设论坛,做旅游宣传网站的流程,长沙专业网站建设公司排名文章目录 vector构造函数 vector()拷贝构造 vector()析构函数 ~vector()iterator 的定义begin()与const版本end()与const版本增删改查尾插push_back()尾删pop_back()指定位置插入insert()指定位置删除 erase() operator[]与const版本容量增容reserve()设置容量 resize() 成员函… 文章目录 vector构造函数 vector()拷贝构造 vector()析构函数 ~vector()iterator 的定义begin()与const版本end()与const版本增删改查尾插push_back()尾删pop_back()指定位置插入insert()指定位置删除 erase() operator[]与const版本容量增容reserve()设置容量 resize() 成员函数swap()size()capacity()empty()clear()front()back() 迭代器失效问题 vector 构造函数 vector() 因为给了缺省值所以这里拷贝构造为空 iterator 是迭代器 vector() {} private:iterator _str nullptr;//首个元素的地址iterator _size nullptr;//尾元素的地址iterator _capacity nullptr;//容量拷贝构造 vector() 三种拷贝构造 1、正常的拷贝构造 2、拷贝一个区间 3、简结写法 vector(int n, const T val T())//正常的拷贝构造:_str(nullptr), _size(nullptr), _capacity(nullptr) {reserve(n);for (size_t i 0; i n; i){push_back(val);} } template class InputIterator vector(InputIterator str, InputIterator size)//拷贝区间 {while (str ! size){push_back(*str);str;} } vector(const vectorT s)//简结写法 {vectorT tmp(s.begin(), s.end());swap(tmp);}析构函数 ~vector() delete掉**_str** 让他指向空 然后让尾部元素也指向空 容量也指向空 ~vector() {delete[] _str;_str nullptr;_size _capacity nullptr; }iterator 的定义 迭代器的定义在vector里面是指针 typedef T* iterator; typedef const T* const_iterator;begin()与const版本 因为我们定义的变量为迭代器的变量并且是指向了头尾的所以我们这直接给他一个头的位置就可以了 const_iterator begin() const {return _str; } iterator begin() {return _str; }end()与const版本 我们定义变量的时候给的是尾部的位置 所以这里也可以直接返回尾部 const_iterator end() const {return _size; } iterator end() {return _size; }增删改查 尾插push_back() void push_back(const T val) {if (_size _capacity)//判断容量够不够{size_t newCapacity capacity() 0 ? 4 : capacity() * 2;reserve(newCapacity);}*_size val;_size; }尾删pop_back() void pop_back() {assert(!empty());//判空 如果是空还删什么return _size--; }指定位置插入insert() 这里要判断pos位置是不是在这个有效数据范围之内 然后要把这个_str到pos这个位置的值存起来 如果不存起来会导致reserve的时候会丢失这个pos位置 iterator insert(iterator pos, const T val) {assert(pos _size);assert(pos _str);if (_size _capacity){size_t len pos - _str;size_t newCapacity capacity() 0 ? 4 : capacity() * 2;reserve(newCapacity);pos _str len;}//memmove(pos 1, pos, sizeof(T) * (_size - pos));iterator end _size - 1;while (end pos){(*end 1) *end;--end;}*pos val;_size;return pos; }指定位置删除 erase() 依旧判断pos存不存在 往前覆盖 iterator erase(iterator pos) {assert(pos _size);assert(pos _str);//memmove(pos, pos 1, sizeof(T) * (_size - pos));iterator it pos 1;while (it _size){*(it - 1) *it;it;}_size--;return pos; }operator[]与const版本 用下标访问数据 T operator[](size_t pos) {assert(pos size());return _str[pos]; } const T operator[](size_t n) const {assert(n size());return _str[n]; }容量 增容reserve() 不一定增容在不同平台下可能会缩容但我这不会写缩容 void reserve(size_t n) {if (n capacity()){size_t old size();T* tmp new T[n];/*if (_str){memcpy(tmp, _str, n * sizeof(T));}*/for (size_t i 0; i size(); i){tmp[i] _str[i];} delete[] _str;_str tmp;_size _str old;_capacity _str n;} }设置容量 resize() 设置容量(会缩容) void resize(size_t n, const T value T()) {if (n size())//当设置的长度比_size都小{_size _str n;_capacity _str n;}else if (n size() n capacity())//_size和_capaticy之间{_capacity _str n;}else//增容{reserve(n);while (_size _str n){*_size value;_size;}} }成员函数 swap() 交换2个vector的内容 void swap(vectorT s) {std::swap(_str, s._str);std::swap(_size, s._size);std::swap(_capacity, s._capacity); }size() 有效数据个数 size_t size() const {return _size - _str; }capacity() 容量大小 size_t capacity() const {return _capacity - _str; }empty() 判空 bool empty()//判断是否为空 {return _str _size; }clear() 清空vector void clear() {_str[0] \0; }front() 返回首元素 vector front() {return _str; }back() 返回尾元素 vector back() {return _size; }迭代器失效问题 如果出现扩容或者说数据的移动会使迭代器失效 在上面中我处理的尽量不失效的方法但也可能失效 在使用insert和erase都有可能发生迭代器失效问题
http://www.hkea.cn/news/14280770/

相关文章:

  • seo整站优化公司持续监控百度的链接
  • 厦网站建设培训学校wordpress简约博客主题
  • 威海 医院网站建设商品详情页设计模板
  • 响应式网站 价格产品推广计划
  • intitle 郑州网站建设网站开发和程序开发
  • 扬州网站商城建设价格信息免费发布平台
  • 中国建设银行手机网站下载安装用模板做网站需要懂代码吗
  • wordpress淘宝客网站模板网站建设价表模板
  • 哈尔滨网页设计网站模板免费html5网站源码
  • 在网站上做网络课堂软件多少钱怎么开店
  • 家政网站制作线上线下相结合的营销模式
  • 网站域名费用怎么做帐爱获客电销系统
  • 网站系统建设预算国内专业网站设计
  • 怎样做电影网站模型网站大全免费
  • 服务好的企业网站怎么建设it渠道网
  • 关于集团网站建设的修改请示上海巨型网站建设
  • 网站搜索功能如何实现做平面设计兼职的网站
  • 个人建设网站程序青海西宁网站建设
  • 网站建设电话销售开场白wordpress venue
  • 常见网站结构网站游戏网站怎么做
  • 西安网站优化效果terrytao wordpress
  • 制作一个网站人才招聘网网站策划方案
  • 原材料价格查询网站有什么做衣服的网站吗
  • 网站建设 问答wordpress页面回收站位置
  • 设计企业网站如何制作网站地图
  • 网站的建设期破解要钱网站
  • 网站功能建设湛江建设网官方网站
  • 做盗版影视网站租赁商城手机网站开发
  • 免费网站空间10g公司网址大全
  • 电影网站做流量邮箱登陆登录入口