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

西安网站建设网站推广个性定制网站有哪些

西安网站建设网站推广,个性定制网站有哪些,什么是网站什么是网站建设,做网站内容软件#x1f497; #x1f497; 博客:小怡同学 #x1f497; #x1f497; 个人简介:编程小萌新 #x1f497; #x1f497; 如果博客对大家有用的话#xff0c;请点赞关注再收藏 #x1f31e; string() //注意事项#xff1a; 1.初始化列表随声明的顺序进行初始化 2.cons… 博客:小怡同学 个人简介:编程小萌新 如果博客对大家有用的话请点赞关注再收藏 string() //注意事项 1.初始化列表随声明的顺序进行初始化 2.const char* str nullptr 是错误写法编译器会报错 3.const char* str ‘\0’类型不匹配 4.capacity1 的原因是 _capacity是有效字符的数量加一是为了给‘\0’留空间 //构造函数 string(const char* str ) {_size strlen(str);_capacity _size;_str new char(_capacity 1);memcpy(_str, str, _size 1); }string() //这里重点注意深浅拷贝 浅拷贝也称位拷贝编译器只是将对象中的值拷贝过来.(如果自己没写拷贝函数编译器会自动生成浅拷贝的拷贝函数) 浅拷贝的两大缺陷 1.如果对象中管理资源最后就会导致多个对象共 享同一份资源. 2.当一个对象销毁时就会将该资源释放掉而此时另一些对象不知道该资源已经被释放以为 还有效所以当继续对资源进项操作时就会发生发生了访问违规。 深拷贝如果一个类中涉及到资源的管理其拷贝构造函数、赋值运算符重载以及析构函数必须要显式给出。一般情况都是按照深拷贝方式提供。 //拷贝构造函数 string(const string s){_size s._size;_capacity s._capacity;_str new char[s._capacity 1];memcpy(_str,s._str,_size1);}3.~string() //析构函数 ~string(){_size _capacity 0;delete[] _str;_str nullptr;}4. push_back() //尾插字符 void push_back(char c) {if (_size _capacity){int newcapacity _capacity 0 ? 4 : _capacity * 2;reserve(newcapacity);_str[_size] c;_str[_size] \0;} }5.append() //尾插字符串 void append(const char* str) {size_t len strlen(str);if (_size len _capacity){reserve(_sizelen);}/*strcpy(_str_size, str);*/memcpy(_str_size,str,len1);_size _size len; }6.insert() //在pos添加字符或字符串 string insert(size_t pos, size_t n,char c) {assert(pos _size);if (_sizen _capacity){reserve(_sizen);}size_t end _size;while (end pos end ! npos){_str[end n] _str[end];end--;}for (int i 0; i n; i){_str[posi] c;}_size n;return *this;}string insert(size_t pos, const char* str) {assert(pos _size);int 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 (int i 0; i len; i){_str[pos i] str[i];}_size len;return *this; }7.erase() //消除从pos位置开始n个字符 string erase(size_t pos, size_t len npos) {assert(pos _size);if (len npos || pos len _size){_str[pos] \0;_size pos;}while (pos _size-len){_str[pos] _str[pos len];pos;}_size - len;return *this; }8.find() 返回c在string中第一次出现的位置 size_t find(char c, size_t pos 0) const {for (size_t i pos; i _size; i){if (_str[i] c){return i;}}} 返回子串s在string中第一次出现的位置size_t find(const char* s, size_t pos 0) const {char* str _str pos;while (*str){const char* scopy s;const char* strcopy str;while (*scopy *scopy *strcopy){scopy;strcopy; }if (*scopy \0){return str - _str;}else{str;}} return npos; }9.clear() //清理字符 void clear() {_size 0;_str[0] \0; }10.size() //返回有效字符大小 //这里const 是为了能让const对象和非const对象都能够调用 size_t size() const {return _size; }11.c_str() //返回字符串 //这里const 是为了能让const对象和非const对象都能够调用 const char* c_str() const {return _str; }12.capacity() //返回有效容量大小 //这里const 是为了能让const对象和非const对象都能够调用 size_t capacity() const {return _capacity; }13. operator bool operator(const string s)const {int ret memcmp(_str, s._str, _size s._size ? _size : s._size);return ret 0 ? _size s._size : ret 0; }14.operator bool operator(const string s))const {return s._size _size memcmp(_str, s._str, _size ) 0; }15.operator bool operator(const string s)const {return *this s *this s; }16.operator bool operator(const string s)const {return !(*this s); }17.operator bool operator(const string s)const {return !(*this s); }18.operator! bool operator!(const string s) {return !(*this s); }19.operator[] //可读可改 char operator[](size_t index) {assert(index _size);return _str[index]; } //只读不改 const char operator[](size_t index)const; {assert(index _size);return _str[index]; }20.operator string operator(string s)//这里调用拷贝构造不改变原对象 {if (this ! s){std::swap(_size, s._size);std::swap(_capacity, s._capacity);std::swap(_str, s._str);}return *this; }string operator(const string s) {if (s ! this){string tmp(s);std::swap(_size, tmp._size);std::swap(_capacity, tmp._capacity);std::swap(_str, tmp._str);} return *this; }21.operator //添加字符 string operator(char ch) {push_back(ch);return *this; } //添加字符串 string operator(const char* str) {append(str);return *this; }22.operator //输出输入流只能用引用接受和返回 ostream operator(ostream out, const string s) {for (auto ch : s){out ch;}return out; }23.operator ostream operator(ostream in, string s) {s.clear();char ch in.get();while (ch || ch ){ch in.get();}char buff[128];int i 0;while (ch ! ch ! \n){if (i 127){buff[i] \0;i 0;s buff;}s ch;ch in.get();}if (i ! 0){buff[i] \0;s buff;}return in; }24.resize() //设置有效字符大小如果比原先小则保持不变如果比原先大则在尾部添加。 void resize(size_t n, char c \0) {if (n _size){_size n;_str[_size] \0;}else{reserve(n);for (size_t i _size; i n; i){_str[i] c;}_size n;_str[_size] \0;} }25.reserve() //设置容量大小只增不减 void reserve(size_t n) {if (n _capacity){char* tmp new char[n 1];memcpy(tmp, _str, _size 1);_capacity n;delete[] _str;_str tmp; } }26.substr() string substr(size_t pos 0, size_t len npos) {assert(pos _size);int n 0;if (len npos || pos len _size){n _size - pos;}string tmp;tmp.reserve(n);for (size_t i pos; i posn; i){tmp_str[i];//为什么不加\0 }return tmp; }
http://www.tj-hxxt.cn/news/134177.html

相关文章:

  • 池州家居网站建设怎么样滨州网站建设腾度
  • 手机看电视剧网站大全仓库网站开发
  • 凉山州建设厅官方网站wordpress 怎样做模版
  • 自己网站上做淘宝搜索网页制作指南
  • 简单网站建设优化推广wordpress logo 没了
  • 扬州做网站的科技公司私人注册企业邮箱
  • 做单页网站需要做什么有没有学室内设计的学校
  • 网站建设预期目标网站建设流量什么意思
  • 做yahoo代拍网站公司专业网站定制流程
  • 51个人网站上海缘震网络科技有限公司
  • 企业网站首页设计与制作网站建设中山
  • 郑州建设网站有哪些网站后台邮箱配置
  • ckplayer 视频网站网站都有哪些
  • 在家百度统计网站打不开安全的网站建设推广
  • 广州10大网站开发门户网站欣赏
  • 石家庄网站空间WordPress P站
  • 页面效果华丽的网站如何注册网站卖东西
  • 上海网站推广优化软件开发入门
  • 自己做网站可以挣钱吗网站右下角广告代码
  • 山东网站建站建设南海大良网站建设
  • 公司做完网站怎么搜不到网站套站
  • 招工做的网站网站域名改了以后新域名301
  • 二级域名网站怎么建设精仿腾讯3366小游戏门户网站源码织梦最新内核带全部数据!
  • 网站管理系统 免费推广网站建设产品介绍
  • 淄博网站建设程序企微管家
  • 用j2ee作的网站兴国电商网站建设
  • 网站后台框架模版网站多服务器建设
  • 淘宝在哪个网站做推广网上企业登记注册流程
  • 做网站和游戏是如何赚钱网站设计交流
  • 北京专业网站开发公司网站建设必须要做404