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

做网站没资源装修大全

做网站没资源,装修大全,百度下载文章转wordpress,导航网站前端模板上回我们完成了string类的模拟实现#xff0c;不过之前写的传统写法本篇#xff0c;我们将要对其进行一些改进#xff0c;写成参考的是现代写法#xff0c;这样写可以提高可读性。 上回我们写好的string类 //string.h #pragma once#define _CRT_SECURE_NO_WARNINGS 1 #p…上回我们完成了string类的模拟实现不过之前写的传统写法本篇我们将要对其进行一些改进写成参考的是现代写法这样写可以提高可读性。 上回我们写好的string类 //string.h #pragma once#define _CRT_SECURE_NO_WARNINGS 1 #pragma once #includeiostream #includeassert.h using namespace std;namespace STring {class string{public:typedef char* iterator;typedef const char* const_iterator;iterator begin();iterator end();const_iterator begin() const;const_iterator end() const;//string();string(const char* str );string(const string s);string operator(const string s);~string();const char* c_str() const;size_t size() const;char operator[](size_t pos);const char operator[](size_t pos) const;void reserve(size_t n);void push_back(char ch);void append(const char* str);string operator(char ch);string operator(const char *str);void insert(size_t pos, char ch);void insert(size_t pos, const char* str);void erase(size_t pos 0, size_t len npos);size_t find(char ch, size_t pos 0);size_t find(const char* str, size_t pos 0);void swap(string s);string substr(size_t pos 0, size_t len npos);bool operator(const string s) const;bool operator(const string s) const;bool operator(const string s) const;bool operator(const string s) const;bool operator(const string s) const;bool operator!(const string s) const;void clear();private:// char _buff[16];char* _str;size_t _size;size_t _capacity;// //const static size_t npos -1;// ֧//const static double N 2.2;const static size_t npos;};istream operator (istream is, string str);ostream operator (ostream os, const string str); } //string.cpp #includestring.h namespace STring {const size_t string::npos -1;string::iterator string::begin(){return _str;}string::const_iterator string::begin() const{return _str;}string::iterator string::end(){return _str _size;}string::const_iterator string::end() const{return _str_size;}string:: string(const char* str):_size(strlen(str)){_str new char[_size1];_capacity _size1;strcpy(_str, str);}string::string(const string s){_str new char[s._capacity];strcpy(_str, s._str);_size s._size;_capacity s._capacity;}string::~string(){delete[] _str;_str nullptr;_size _capacity 0;}const char* string::c_str() const{return _str;}size_t string :: size() const{return _size;}void string::reserve(size_t n){if (n _capacity){char* tmp new char[n 1];strcpy(tmp, _str);delete[] _str;_str tmp;_capacity n;}}void string::push_back(char ch){if (_size _capacity){size_t newcapacity _capacity 0 ? 4 : _capacity * 2;reserve(newcapacity);}_str[_size] ch;_str[_size 1] \0;_size;}void string::append(const char* str){size_t len strlen(str);if (_size len _capacity){reserve(_size len);}strcpy(_str _size, _str);_size len;insert(_size, _str);}void string::insert(size_t pos, char ch){assert(pos _size);if (_size _capacity){size_t newcapacity _capacity 0 ? 4 : _capacity * 2;reserve(newcapacity);}size_t end _size 1;while (end pos){_str[end] _str[end - 1] 1;--end;}_str[pos] ch;_size;}void string::insert(size_t pos, const char* str){assert(pos _size);int len strlen(str);if (_size len _capacity){reserve(_capacitylen);}size_t end _size len;while (end poslen1){_str[end] _str[end - len];--end;}memcpy(_strpos,str,len);_size len;}void string::erase(size_t pos, size_t len){assert(pos _size);if (len _size - pos){_str[pos] \0;_size len;}else{strcpy(_str pos, _str pos len);_size len;}}size_t string::find(char ch, size_t pos){for (size_t i pos; i _size; i){if (_str[i] ch){return i;}}return npos;}size_t string::find(const char* str, size_t pos){char* p strstr(_str pos, str);return p - _str;}void string::swap(string s){std::swap(_str, s._str);std::swap(_size, s._size);std::swap(_capacity, s._capacity);}string string::substr(size_t pos, size_t len){if (len _size - pos){string sub(_str pos);return sub;}else{string sub;sub.reserve(len);for (size_t i 0; i len; i){sub _str[i pos];}return sub;}}string string:: operator(const string s){if (this ! s){char* tmp new char[s._capacity];strcpy(tmp, s._str);delete[] _str;_str tmp;_size s._size;_capacity s._capacity;}return *this;}char string::operator[](size_t pos){if (pos _size)return _str[pos];}const char string::operator[](size_t pos) const{if (pos _size)return _str[pos];}string string::operator(char ch){push_back(ch);return *this;}string string::operator(const char* str){append(str);return *this;}bool string::operator(const string s) const{return strcmp(_str, s._str) 0;}bool string::operator(const string s) const{return !(*this s);}bool string::operator(const string s) const{return *this s || *this s;}bool string::operator(const string s) const{return !(*this s);}bool string::operator(const string s) const{return strcmp(_str, s._str) 0;}bool string::operator!(const string s) const{return !(*this s);}void string::clear(){_str[0] \0;_size 0;}istream operator (istream is, string str){str.clear();char ch is.get();while (ch ! ch ! \n){str ch;ch is.get();}return is;}ostream operator (ostream os, const string str){for (size_t i 0; i str.size(); i){os str[i];}return os;} } 以下是现代写法对于 传统写法的改进 一、push_back 传统写法 void string::push_back(char ch) {if (_size _capacity){size_t newcapacity _capacity 0 ? 4 : _capacity * 2;reserve(newcapacity);}_str[_size] ch;_str[_size 1] \0;_size; } 现代写法 void string::push_back(char ch){insert(_size, ch);} 二、append 传统写法 void string::append(const char* str){size_t len strlen(str);if (_size len _capacity){reserve(_size len);}strcpy(_str _size, _str);_size len;insert(_size, _str);} 现代写法 void string::append(const char* str){insert(_size, str);}
http://www.zqtcl.cn/news/729638/

相关文章:

  • 做发帖的网站代码seo联盟平台
  • 铁威马 Nas 做网站百度广告代运营
  • 有没有帮别人做网站小说关键词生成器
  • 那些开店的网站是自己做的吗装修平台排行榜前十名
  • 重庆智能网站建设价格毕业设计做系统跟做网站哪个容易
  • 淘宝美工做兼职的网站多多返利网站建设
  • 如何承接设计网站建设电商平台开发流程
  • 安康做网站简洁高端的wordpress个人博客
  • 酒店网站建设协议手机怎么做销售网站
  • 屏蔽网站接口js广告seminar
  • 谁有手机网站啊介绍一下wordpress 流量插件
  • 杭州网站公司google网站建设
  • 莱芜住房和城乡建设厅网站网站头部设计
  • 织梦响应式茶叶网站模板邯郸最新通告今天
  • 深圳公司网站改版通知做网站分类链接
  • 电子商务网站建设答案网络运营与维护
  • 网站登陆怎么做网站app的区别
  • 获取网站缩略图工信部2017网站备案
  • 有哪些网站可以做ps挣钱自己制作游戏
  • 旅游网站开发团队四川住房和城乡建设网站
  • 网站框架设计商城网站制作需要多少费用
  • 网站建设哪个公司个人网站做哪种能赚钱
  • 福建建设人才与科技发展中心seo导航站
  • 修文县生态文明建设局网站郑州制作网站哪家好
  • 泉州网站优化排名东莞长安做网站公司
  • 网站制作公司 顺的有口碑的赣州网站建设
  • 成都网站设计制作苏州新闻
  • 黑色网站设计iis 网站 红
  • 专业做家居的网站佛山做网站永网
  • 医疗网站建设讯息企业门户网站建设思路