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

单位网址怎么编电商运营seo

单位网址怎么编,电商运营seo,平面设计网格,某些网站域名解析错误上次讲了常用的接口#xff1a;C初阶#xff1a;初识STL、String类接口详细讲解#xff08;万字解析#xff09; 今天就来进行模拟实现啦 文章目录 1.基本结构与文件规划2.构造函数#xff08;constructor)2.1构造函数2.1.1无参有参分开2.1.2利用缺省参数合起来 2.2拷贝构…上次讲了常用的接口C初阶初识STL、String类接口详细讲解万字解析 今天就来进行模拟实现啦 文章目录 1.基本结构与文件规划2.构造函数constructor)2.1构造函数2.1.1无参有参分开2.1.2利用缺省参数合起来 2.2拷贝构造2.3模拟c_str()函数 3.析构函数destructor4.operator5.迭代器iterator6.1size()与capacity()6.2 reserve()函数 7. modify7.1push_back()、append()和operator7.2clear()和swap() 8.accessoperator[]9.npos10.find()函数11.insert()和erase()13.operator和operator 先看一下大概有哪些部分 1.基本结构与文件规划 string.h头文件包含类的全部(函数的声明与定义)test.cpp源文件进行调用test函数测试和完善功能 基本结构 namespace MyString {class string{public://各种函数private:int _size;//有效字符的数量int _capacity;//开的空间大小char* _str;//没有设计成模版就直接用char数组了}; }2.构造函数constructor) 2.1构造函数 2.1.1无参有参分开 string()//空参的{_size 0;_capacity 0;_str new char[1];_str[0] \0;}string(const char* str){_size strlen(str);_capacity _size;_str new char[_size 1];//加一是给 \0strcpy(_str, str);}2.1.2利用缺省参数合起来 string(const char* str)//不是 {_size strlen(str);_capacity _size;_str new char[_size 1];//加一是给 \0strcpy(_str, str);}2.2拷贝构造 string(const string s){_size s._size;_capacity s._capacity;_str new char[_capacity 1];strcpy(_str, s._str);}2.3模拟c_str()函数 目前还没有进行流插入和流提取的重构只能利用这个来输出string里的内容 const char* c_str()const {return _str; }利用test1函数来看是否正确 相同的命名空间会进行合并的 namespace MyString {void test1(){string s1;cout s1.c_str() endl;string s2(abc);cout s2.c_str() endl;string s3(s2);cout s3.c_str() endl;} }int main() {MyString::test1();return 0; }3.析构函数destructor ~string(){_size _capacity 0;delete[] _str;_str nullptr;} 4.operator string operator(const string s)//创建好新的空间复制跟赋值。再清理旧空间指向新的{char* tmp new char[s._capacity1];//创建好新空间strcpy(tmp, s._str);_size s._size;_capacity s._capacity;//复制跟赋值delete[] _str;_str tmp;//清理指向新的return *this;}5.迭代器iterator 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;}#6.capacity 6.1size()与capacity() size_t size()const{return _size;}size_t capacity()const{return _capacity;}6.2 reserve()函数 void reserve(size_t n){if (n _capacity){_capacity n;char* tmp new char[_capacity 1];strcpy(tmp, _str);delete[]_str;_str tmp;//指向新的}}namespace MyString {void test2(){string s1;cout s1.size() endl;string s2(abc);cout s2.size() endl;string s3;s3 s2;cout s3.size() endl;cout s3.capacity() endl;} }int main() {MyString::test2();return 0; }7. modify 7.1push_back()、append()和operator void push_back(char c){if (_size _capacity){int newCapacity _capacity 0 ? 4 : 2 * _capacity;//有可能是空参构造reserve(newCapacity);}_str[_size] c;_str[_size] \0;}void append(const char* str){int len strlen(str);if (len _size _capacity){reserve(len _size);}strcpy(_str _size, str);_size len;}string operator(char c){push_back(c);return *this;}string operator(const char* str){append(str);return *this;}这里其实大家也能看到二者一个用于字符的添加一个用于字符串的添加。 其实就可以一个写成另外一个的重载 7.2clear()和swap() void clear(){_size 0;_str[0] \0;}void swap(string s){std::swap(*this, s);//使用库里的swap}对于swap我们可以去使用库里面的加上std就行了 namespace MyString {void test3(){string s1(abc);cout s1.c_str() endl;s1 a;cout s1.c_str() endl;s1 xxx;cout s1.c_str() endl;} }int main() {MyString::test3();return 0; }8.accessoperator[] char operator[](size_t index){return _str[index];}const char operator[](size_t index)const{return _str[index];}一个用于非常量一个用于常量 9.npos namespace MyString {class string{public://各种函数private:int _size;//有效字符的数量int _capacity;//开的空间大小char* _str;//没有设计成模版就直接用char数组了static size_t npos;};size_t string::npos -1; }10.find()函数 // 返回c在string中第一次出现的位置size_t find(char c, size_t pos 0) const//默认从0开始找{for (int i 0; i _size; i){if (_str[i] c){return i;}}return npos;}// 返回子串s在string中第一次出现的位置size_t find(const char* s, size_t pos 0) const{char* ret strstr(_str, s);//返回第一次出现的位置if (ret nullptr)//没找到{return npos;}return ret - _str ;}namespace MyString {void test4(){string s1(abc);cout s1.find(a) endl;cout s1.find(bc);} }int main() {MyString::test4();return 0; }11.insert()和erase() // 在pos位置上插入字符c/字符串str并返回该字符的位置string insert(size_t pos, char c){if (_size _capacity)//先看空间够不够{int newcapacity _capacity 0 ? 4 : 2 * _capacity;reserve(newcapacity);}//先向后移一格int end _size;// \0也往后while (end (int)pos)//pos一般为size_t类型此时end会整型提升有符号整数类型会被提升为无符号整数类型。{_str[end 1] _str[end];end--;}_str[pos] c;_size;return *this;}string insert(size_t pos, const char* str){int len strlen(str);if (_size len _capacity){reserve(_size len);}//先向后移len个格int end _size;// \0也往后while (end (int)pos){_str[end len] _str[end];end--;}strncpy(_str pos, str,len);_size len;return *this;}// 删除pos位置上的元素并返回该元素的下一个位置string erase(size_t pos, size_t len npos){if (len npos || len pos _size){_str[pos] \0;_size pos;}else{int start pos;while (_size - start - len1 0){_str[start] _str[start len];start;}}return *this;}测试 namespace MyString {void test5(){string s1(abc);cout s1.c_str() endl;int pos s1.find(bc);s1.insert(pos, xxx);cout s1.c_str() endl;s1.erase(pos,2);cout s1.c_str() endl;} }int main() {MyString::test5();return 0; } #12.substr()函数 string substr(size_t pos, size_t len npos){int end pos len;//end作为结束位置if (len npos || pos len _size){end _size;//当这两种情况结束位置就是最后\0了}//开始pos到end赋值到新的一个空间再返回string s;reserve(end - pos);for (int i pos; i end; i){s _str[i];}return s;}13.operator和operator ostream operator(ostream out, string s)//不需要放在类内不需要是友元{for (auto e : s){out e;}return out;}istream operator(istream in, string s){s.clear();char ch in.get();//使用cin拿不到空格和换行二者其实还是字符就用这个getwhile (ch ! ch ! \n){s ch;ch in.get();}return in;}测试 namespace MyString {void test6(){string s1;cin s1;cout s1 endl;int pos s1.find(b);string s2 s1.substr(pos, 2);cout s2 endl;} }int main() {MyString::test6();return 0; }好啦今天就到这里啦感谢大家支持
http://www.hkea.cn/news/14504566/

相关文章:

  • 法律网站建设价格百度投放广告平台
  • thinkphp 显示第三方网站图片开发平台 华为
  • o2o网站建设方案网站建设资料准备标准
  • pc网站 手机网站 微信公众平台单位门户网站功能
  • 网站怎么上传ftp酒店建筑设计
  • 临海网站建设凯里网站建设哪家专业
  • asp 企业网站源码室内设计优秀作品
  • 网站自助建设网站作业成品
  • 常用的网站推广方法有哪些开发公司职称个人业务自传
  • ipv6跟做网站有关吗如何免费建一个wordpress
  • 离石古楼角网站建设十大电子商务网站
  • 潍坊网站建设自助建站平台上海营销策划公司哪家好
  • 网站开发工程师绩效网页设计师职业资格证书
  • 万户网络做网站怎么样公众号外链网站怎么做
  • 安康免费做网站公司网站表单模板
  • 地方网站的建设建筑设计网站网址
  • 荣成网站建设妇科网站源码
  • 网站建设找睿智骄阳网站后台源码
  • 长沙的在线商城网站建设桂林网站制作网站
  • 做蔬菜线上的网站asp.net网站运行助手
  • 响应式网站的研究意义中小型企业网络搭建案例
  • 全国各大网站建立网站的风险
  • 河南网站托管优化网站建设与运维
  • 南宁网站建设培训学校网站防护怎么做
  • 企业建设网站的苏州网站排名优化
  • 长白山网站学做管理平台网站seo优化技能
  • 国内最便宜机票网站建设企业推广策划书
  • 建筑论坛网站c#网站购物车怎么做
  • 北京城建建设工程有限公司网站后端开发工作内容
  • 淄博网站制作服务优化知名网站建设开发