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

网站维护哪些成都专业网站设计公司

网站维护哪些,成都专业网站设计公司,外贸搜素网站,wordpress paypal支付目录 基本思路 代码实现 1.构建框架#xff1a; 2.构建函数重载 3.迭代器#xff1a; 4.遍历string 5.resetve 开空间#xff0c;insert任意位置插入push_back,append,(按顺序依次实现) 6.erase删除#xff0c;clear清除#xff0c;resize缩容 7.流插入#xff0… 目录 基本思路 代码实现 1.构建框架 2.构建函数重载 3.迭代器 4.遍历string 5.resetve 开空间insert任意位置插入push_back,append,(按顺序依次实现) 6.erase删除clear清除resize缩容 7.流插入流提取 全部代码 本文是对模拟string步骤进行梳理 若要详细讲解请跳转至【C】string模拟-CSDN博客 string讲解【C】String类-CSDN博客 基本思路 构建string类框架 构造函数 拷贝构造析构返回字符串的 C 风格表示返回字符串长度返回总容量 构建函数重载 operator,operator[] ! 迭代器 begin() end() 遍历string resetve 开空间insert任意位置插入push_back,append,,交换 erase删除clear清除resize缩容 流插入流提取 代码实现 1.构建框架 class string{private:char *_str;size_t _size;size_t _capacity;public:string(const char *str ): _size(strlen(str)){_capacity _size 0 ? 3 : _size;_str new char[_size 1];strcpy(_str, str);}​// 拷贝string(const string s): _size(s._size), _capacity(s._capacity){_str new char[_capacity 1];strcpy(_str, s._str);}​~string(){delete[] _str;_str nullptr;_capacity _size 0;}const char *c_str(){return _str;}//?size_t size() const // const?{return _size;}size_t capacity() const{return _capacity;}}; 2.构建函数重载 string operator(const string s){if (this ! s){char *tmp new char[s._capacity 1];strcpy(tmp, s._str);delete[] _str;_str tmp;_size s._size;_capacity s._capacity;}return *this;}​char operator[](size_t pos){assert(pos _size);return _str[pos];}​const char operator[](size_t pos) const{assert(pos _size);return _str[pos];}​bool operator(string s) const{return strcmp(_str, s._str) 0;}bool operator(string s) const{return strcmp(_str, s._str) 0;}bool operator(string s) const{return *this s || *this s;}bool operator(string s) const{return !(*this s);}bool operator(string s) const{return !(*this s);}bool operator!(string s) const{return !(*this s);} 3.迭代器 typedef char *iterator;typedef const char *const_iterator;​iterator begin(){return _str;}iterator end(){return _str _size;} 4.遍历string void Print(const string s){//方法1for (size_t i 0; i s.size(); i){cout s[i] ;}cout endl;//方法二迭代器遍历const_iterator rit s.begin();while (rit ! s.end()){cout *rit ;rit;}} 5.resetve 开空间insert任意位置插入push_back,append,(按顺序依次实现) void reserve(size_t n){if (n _capacity){char *tmp new char[n 1];strcpy(tmp, _str);delete[] _str;_str tmp;_capacity n;}}​string insert(size_t pos, char ch){assert(pos _size);// 判断大小if (_size 1 _capacity){reserve(2 * _capacity);}size_t end _size 1;​while (end pos){_str[end] _str[end 1];end--;}_str[pos] ch;_size;return *this;}​string insert(size_t pos, const char *str){assert(pos _size);size_t len strlen(str);if (_size len _capacity){reserve(_size len);}size_t end _size len;while (end pos len - 1){_str[end - len] _str[end];--end;}strncpy(_str pos, str, end);_size len;​return *this;}​void push_back(char ch){insert(_size, ch);}​void append(const char *str){insert(_size, str);}​string operator(char ch){push_back(ch);return *this;}​string operator(const char *str){append(str);return *this;} 交换void swap(string s){std::swap(_str, s._str);std::swap(_capacity, s._capacity);std::swap(_size, s._size);} 6.erase删除clear清除resize缩容 string erase(size_t pos, size_t len npos){assert(pos _size);if (len npos || len _size){_str[pos] \0;_size pos;}else{strcpy(_str pos, _str pos len);_size - len;}return *this;}​void resize(size_t n, char ch \0){if (n _size){_size n;_str[_size] \0;}else if (n _size){if (n _capacity){reserve(n);}size_t i _size;while (i n){_str[i] ch;i;}_size n;_size \0;}}​void clear(){_str[0] \0;_size 0;} 7.流插入流提取 ostream operator(ostream out, const string s){for (size_t i 0; i s.size(); i){out s[i];}return out;}​istream operator(istream in, string s){s.clear();char ch in.get();char buff[128];size_t i 0;​while (ch ! ch ! \n){buff[i] ch;if (i 127){buff[127] \0;s buff;i 0;}ch in.get();}​if (i ! 0){buff[i] ch;buff[i 1] \0;s buff;}return in;} 全部代码 string.h #include iostream#include assert.husing namespace std;​namespace wzf{class string{private:char *_str;size_t _size;size_t _capacity;​static size_t npos;​public:typedef char *iterator;typedef const char *const_iterator;​iterator begin(){return _str;}iterator end(){return _str _size;}​const_iterator begin() const{return _str;}const_iterator end() const{return _str _size;}​string(const char *str ): _size(strlen(str)){_capacity _size 0 ? 3 : _size;_str new char[_size 1];strcpy(_str, str);}​// 拷贝string(const string s): _size(s._size), _capacity(s._capacity){_str new char[_capacity 1];strcpy(_str, s._str);}​~string(){delete[] _str;_str nullptr;_capacity _size 0;}​string operator(const string s){if (this ! s){char *tmp new char[s._capacity 1];strcpy(tmp, s._str);delete[] _str;_str tmp;_size s._size;_capacity s._capacity;}return *this;}​char operator[](size_t pos){assert(pos _size);return _str[pos];}​const char operator[](size_t pos) const{assert(pos _size);return _str[pos];}​bool operator(string s) const{return strcmp(_str, s._str) 0;}bool operator(string s) const{return strcmp(_str, s._str) 0;}bool operator(string s) const{return *this s || *this s;}bool operator(string s) const{return !(*this s);}bool operator(string s) const{return !(*this s);}bool operator!(string s) const{return !(*this s);}​void reserve(size_t n){if (n _capacity){char *tmp new char[n 1];strcpy(tmp, _str);delete[] _str;_str tmp;_capacity n;}}​string insert(size_t pos, char ch){assert(pos _size);// 判断大小if (_size 1 _capacity){reserve(2 * _capacity);}size_t end _size 1;​while (end pos){_str[end] _str[end 1];end--;}_str[pos] ch;_size;return *this;}​string insert(size_t pos, const char *str){assert(pos _size);size_t len strlen(str);if (_size len _capacity){reserve(_size len);}size_t end _size len;while (end pos len - 1){_str[end - len] _str[end];--end;}strncpy(_str pos, str, end);_size len;​return *this;}​void push_back(char ch){insert(_size, ch);}​void append(const char *str){insert(_size, str);}​string operator(char ch){push_back(ch);return *this;}​string operator(const char *str){append(str);return *this;}​string erase(size_t pos, size_t len npos){assert(pos _size);if (len npos || len _size){_str[pos] \0;_size pos;}else{strcpy(_str pos, _str pos len);_size - len;}return *this;}​void resize(size_t n, char ch \0){if (n _size){_size n;_str[_size] \0;}else if (n _size){if (n _capacity){reserve(n);}size_t i _size;while (i n){_str[i] ch;i;}_size n;_size \0;}}​void clear(){_str[0] \0;_size 0;}​const char *c_str(){return _str;}//?size_t size() const // const?{return _size;}size_t capacity() const{return _capacity;}};size_t string::npos -1;​ostream operator(ostream out, const string s){for (size_t i 0; i s.size(); i){out s[i];}return out;}​istream operator(istream in, string s){s.clear();char ch in.get();char buff[128];size_t i 0;​while (ch ! ch ! \n){buff[i] ch;if (i 127){buff[127] \0;s buff;i 0;}ch in.get();}​if (i ! 0){buff[i] ch;buff[i 1] \0;s buff;}return in;}​void TestString1(){string s1(Hello);cout s1.c_str() endl;string s2 s1;string s3(s1);cout s3.c_str() endl;s1[0];cout s1.c_str() endl;}void TestString2(){string s1(Hello);cout s1.c_str() endl;string s2(NI);cout (s1 s2) endl;cout (s1 s2) endl;cout (s1 s2) endl;cout (s1 ! s2) endl;cout (s1 s2) endl;}void TestString3(){string s1(Hello);cout s1.c_str() endl;s1 !;s1 2345;cout s1.c_str() endl;}void TestString4(){string s1(HelloWord);string s2(HelloWord);s1.erase(3, 1);cout s1.c_str() endl;s1.erase(3, 100);cout s1.c_str() endl;s2.resize(4);cout s2.c_str() endl;s2.resize(10, x);cout s2.c_str() endl;}void TestString5(){string s1(HelloWord);cout s1 endl;cin s1;string::iterator it s1.begin();while (it ! s1.end() - 1){cout *it ;it;}cout endl;}} string.cpp #include string.h​int main(){try // char* tmp new char[s._capacity 1];是否开辟异常{wzf::TestString5();}catch (const std::exception e){std::cerr e.what() \n;}​return 0;}
http://www.hkea.cn/news/14400080/

相关文章:

  • 做外贸网站价格wordpress怎样连接数据库连接
  • 清远网站seoaspx网站服务器失去响应
  • 怎么做网站的导航条成都行业网站
  • 泰安建站哪家好猎头公司怎么找
  • 人才网站建站做论坛网站需要什么备案
  • 设计师联盟网站做跨国婚恋网站赚钱吗
  • 网站服务器 同步备份酷炫flash网站
  • 建站工作室源码北京排名seo
  • 万网主体新增网站备案需要是滴么怎么制作一个平台
  • 哪些网站可以做详情页怎么做淘宝推广网站
  • 北京做商铺的网站美丽寮步网站建设价钱
  • 模板网站哪个平台好网页导航栏图片
  • 赤峰做网站开发上海网络优化服务
  • 吉林一站式网站建设介绍老年门户网站建设的意义
  • 长春网站建设 找源晟网站seo设计方案案例
  • 网站制作公司咨询天津百度关键词推广公司
  • 建筑人才网站企业网站开发与管理
  • 网站内页怎样做优化上海新楼盘2022年开盘
  • 公司做网站有用吗前端不会wordpress
  • 网站建设高端设计企业资质证书查询官方网站
  • 深圳互联网网站建设网上做家教那个网站好
  • 做企业网站流程网站seo技术
  • 网站建设服务商城seo网络科技有限公司
  • 吉安网站建设公司百度客户端官网
  • 中国空间站最新动态福安seo
  • 做编程的 网站有哪些方面情侣博客网站模板
  • 局域网网站怎样做数据库南京江北新区核心区
  • 深圳网站优化价格杭州城乡建设网站
  • 企业网站建设参考资料个人开发app需要多少钱
  • 南京网站搜索优化东莞品牌网站建设报价