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

做外贸的国际网站有哪些内容昆明网站排名优化

做外贸的国际网站有哪些内容,昆明网站排名优化,hulu网站在中国做内容吗,成品超市网站前提知识#xff1a;上一章介绍了库里面关于string的诸多接口#xff0c;这章我要根据库里的相关接口#xff0c;自己实现。 1.成员变量#xff1a; 我们需要定义起始位置#xff0c;已经有效字符个数和容量。 private:char* _str;size_t _size;size_t _capacity; 2.默认…前提知识上一章介绍了库里面关于string的诸多接口这章我要根据库里的相关接口自己实现。 1.成员变量 我们需要定义起始位置已经有效字符个数和容量。 private:char* _str;size_t _size;size_t _capacity; 2.默认成员函数 2.1构造函数 默认给的缺省值是空串 string(const char *str ): _size(strlen(str)){_capacity _size;_str new char[_capacity 1];strcpy(_str, str);} 2.2拷贝构造函数  //拷贝构造函数string(const string s){_str new char (s._capacity 1);memcpy(_str, s._str, s._size 1);_size s._size;_capacity s._capacity;} 2.3赋值构造 //赋值构造 先调用拷贝构造string operator (string tmp){// if (this ! s)// {// string tmp(s);// //this-swap(tmp);// swap(tmp);// }// return *this;swap(tmp);return *this;} 2.4析构函数 //析构函数~string(){delete[] _str;_str nullptr;_size 0;_capacity 0;} 3其他成员函数 3.1交换 //交换void swap(string s){std::swap(_str,s._str);std::swap(_size, s._size);std::swap(_capacity, s._capacity);} 3.2c_str函数 //返回字符串首地址const char* c_str(){return _str;} 3.3元素个数 // 返回元素个数size_t size(){return _size;} 3.4operator[ ] 3.4.1普通版本 //根据下标寻找元素char operator[](int pos){assert(pos _size);return _str[pos];} 3.4.2const 版本 //根据下标寻找元素 const版本const char operator[](int pos) const{assert(pos _size);return _str[pos];} 3.5迭代器和范围for 3.5.1普通迭代器版本 typedef char* iterator;iterator begin(){return _str;}iterator end(){return _str _size;} 3.5.2const迭代器版本 const_iterator begin() const{return _str;}const_iterator end() const{return _str _size;} 3.6扩容 3.6.1reserve //扩容 不需要返回值改变容量和长度就行void reserve(size_t n){if (n _capacity){char * tmp new char[n 1];//有结束标识符 \0memcpy(tmp, _str,_size 1);delete [] _str;_str tmp;_capacity n;}} 3.6.2resize void resize(size_t n ,char ch \0){if (n _capacity){_size n;_str[_size] \0;}else{reserve(n);for (int i _size; i n; i){_str[i] ch;}_size n;_str[_size] \0;}} 3.7尾插 3.7.1尾插字符push_back void push_back(char ch){//判断是否需要扩容if (_size _capacity){reserve(_capacity 0 ? 4 : _capacity * 2);}_str[_size] ch;_size;_str[_size] \0;//结束标志位} 3.7.2尾插字符串 append // 尾插 字符串void append(const char* string){size_t len strlen(string);if (_size len _capacity){reserve(_size len);}strcpy(_str _size, string);_size len;//无须给停止标志位因为是字符串} 3.7.3连接重载 operator // 实现尾插// this指针指向对象 对this解引用就是 对象内容string operator (char ch){push_back(ch);return *this;}string operator (const char *string){append(string);return *this;} 3.8插入insert 3.8.1插入字符 //插入字符void insert(size_t pos,char ch, size_t n){assert(pos _size);if (_size n _capacity){reserve(_size n);}//挪动数据size_t end _size;while (end pos end! npos){//当一个数字都没有的时候 会发生越界_str[end n] _str[end];--end;}//插入数据for (int i 0; i n; i){_str[pos i] ch;}_size n;} 3.8.2插入字符串 //插入字符串void insert(size_t pos, char* str){assert(pos _size);size_t len strlen(str);if (_size len _capacity){reserve(_size len);}//挪动数据size_t end _size;while (end pos end ! npos){_str[end len] _str[end];--end;}//插入数据for (size_t i 0; i len; i){_str[pos i] str[i];}_size len;} 3.9擦除erase //擦除void erase(size_t pos, size_t n npos){assert(pos _size);if (n npos || pos n _capacity){_str[pos] \0;_size pos;_str[_size] \0;}else{size_t end pos n;while (end _size){_str[pos] _str[end];}_size - n;}} 3.10查找find 3.10.1查找字符 //发现size_t find(char ch,size_t pos 0){assert(pos _size);for (size_t i pos; i _size; i){if (_str[i] ch){return i;}}return npos;} 3.10.2查找字符串 //发现字符串size_t find(const char* str, size_t pos 0){assert(pos _size);const char* ptr strstr(_str pos, str);if (ptr){return ptr - _str;}else{return npos;}} 3.11返回子串substr // 从某个位置开始 返回长度的字符串string substr(size_t pos 0, size_t len npos){assert(pos _size);size_t n len;if (len npos || pos len _capacity){n _size - pos;}string tmp;//临时创建一个对象tmp.reserve(n);for (size_t i 0; i n; i){tmp _str[i];}return tmp;} 3.12清空clear //清空函数void clear(){_str[_size] \0;_size 0;} 3.13比较 3.13.1 operator () //重载实现 string对象的bool operator (const string s) const{int ret memcmp(_str, s._str, _size s._size?_size : s._size); // 定义一个变量 用来接收 比较两个字符串 长度较小的那个如果相等则为0如果大于则为正值如果小于则为负。return ret 0 ? _size s._size : ret 0;} 3.13.2operator() bool operator (const string s) const{return _size s._size memcmp(_str, s._str, _size)0;} 3.13.3 operator() bool operator (const string s) const{return *this s || *this s;} 3.13.4operator() bool operator (const string s) const{return !(*this s);}3.13.5operator() bool operator (const string s) const{return !(*this s);}3.13.6operator!() bool operator ! (const string s) const{return !(*this s);} 3.14流插入、提取 3.14.1operator //流插入ostream operator (ostream out, const string s){for (auto ch : s){out ch;}return out;}3.14.2operator //流提取istream operator (istream in, string s){s.clear();char ch in.get();//定义一个字符接收//处理前面缓冲区的空格和换行while (ch || ch \n){ch in.get();}char buff[128];int i 0;while ( ch ! \n){buff[i] ch;if (i 127){buff[i] \0;s buff;i 0;}ch in.get();}if (i ! 0){buff[i] \0;s buff;}return in;}
http://www.huolong8.cn/news/211830/

相关文章:

  • 网站的网站制作公司广州公司网站设计制作
  • 做球迷网站网件路由器推荐
  • 湖南网站建设联系电话wordpress时间代码
  • 广州专业网站设计定制网站开发需求文档模板
  • 果洛wap网站建设哪家好成都网站开发定制
  • 宽屏网站和普通网站竞价托管哪家公司好
  • 做网站需要平台网络营销论文4000字
  • 如何让客户做网站网站后台管理系统哪个好
  • 有什么做ppt的网站吗做网站需求
  • 网站架构怎么看简单的网页设计模板
  • 大型资讯门户网站怎么做排名遂宁建设网站
  • 营销网站建站公司哪家好江西 网站 建设 开发
  • 上海网站建设网站游戏生产管理软件定制开发
  • 网站开发学费深圳室内设计公司50强
  • onedrive 做网站静态域名解析到别人网站
  • 上海网站建设设计公司排名网络排名优化软件
  • 如何自己建一个公司网站松江建网站
  • 网站虚拟主机里的内容强制删除施工企业主要负责人对安全生产的
  • 杭州网站seo如何在手机上制作动画
  • 网络建站流程网站设计好后如何发布
  • 企业网站建站企业属于网站建设过程规划和准备阶段的是
  • 公司网站建设调研背景济南外贸建站
  • 大通证券手机版下载官方网站下载怎样做支付网站
  • 怎样给网站做超链接重庆企业网站建设公司
  • 网站域名去哪买wordpress pdf阅读
  • 加强网站建设 实施政务公开设计师网站十大网站
  • 网站建设如何盈利中铁韩城建设公司网站
  • 网站搭建费用企业网站的功能有哪些
  • 漯河公司做网站网站推广策略的控制和效果评价
  • 中国诚信建设网站怎么写代码做网站