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

青岛安装建设股份有限公司网站地推拉新app推广平台有哪些

青岛安装建设股份有限公司网站,地推拉新app推广平台有哪些,谷歌网站建设,湖南3合1网站建设电话文章目录 一、STL简介二、标准库中的string类三、string类的常用接口说明2.1 string类对象的常见构造2.2 string类对象的访问及遍历操作2.2.1 元素访问2.2.2 迭代器 2.3 string类对象的容量操作2.4 string类对象的修改操作2.5 string类非成员函数 四、总结 ヾ(๑╹◡╹)#x… 文章目录 一、STL简介二、标准库中的string类三、string类的常用接口说明2.1 string类对象的常见构造2.2 string类对象的访问及遍历操作2.2.1 元素访问2.2.2 迭代器 2.3 string类对象的容量操作2.4 string类对象的修改操作2.5 string类非成员函数 四、总结 ヾ(๑╹◡╹) 人总要为过去的懒惰而付出代价ヾ(๑╹◡╹) 一、STL简介 STL(standard template libaray-标准模板库)是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。 STL六大组件 开源的linux、git、STL、mysql、安卓……【开源会发展很快】 容器存储数据数据结构 二、标准库中的string类 string文档链接 在使用string类时必须包含#include头文件以及using namespace std;或者using std::string头文件#include string :这里加不加.h都是可以的但是尽可能还是不加【为了和C语言进行区分】 string是表示字符串的字符串类该类的接口与常规容器的接口基本相同再添加了一些专门用来操作string的常规操作。string在底层实际是basic_string模板类的别名typedef basic_stringchar, char_traits, allocator string;不能操作多字节或者变长字符的序列。 编码 Unicode针对全世界编码 gbk:针对中文的编码 ascii针对英文编码 A’内存中存储的是65 char类型所以打印出来的是‘A’. 遗落小知识点 一个汉字两个字节【一般情况下】 三、string类的常用接口说明 2.1 string类对象的常见构造 string构造文档 string可以看做管理动态增长的字符数组【需要兼容C】字符串以’\0’结尾 string的构造函数是非常多的在这里我们仅仅掌握常见的即可。【其他的构造我们可以通过查阅文档来解决】 常用的有无参的构造函数、带参的常量构造、拷贝构造 代码展示 int main() {string s;//创建空字符串;无参的构造函数string s2(abcd);//常量字符串初始化//带参数的构造函数s2 efg;cout s2 endl;string s3 s2;//拷贝构造的两种写法string s4(s3);cout s3 endl;cout s4 endl;//以上常见string s5(abcdefg, 3);//取一段字符串的前3个进行构造cout s5 endl;string s7(5, b);//5个b进行构造cout s7 endl;string s8(abcdefg, 3, 3);//从第三个开始去三个字符进行构造cout s8 endl;return 0; }2.2 string类对象的访问及遍历操作 iterator迭代器 element access 元素访问 迭代器std::iterator【迭代器理解迭代器像指针一样】 2.2.1 元素访问 [ ]代码展示 int main() {string s1(hello);const string s2(hello);s1[0] x;s2[0] x;//s2不可写所以报错const对象不可修改 }at和[ ]功能一样 [ ]用的比较频繁at不经常用[ ]如果出现越界问题会出现断言错误【assert】at出现越界会抛异常。front 和 back是返回第一个和最后一个有效字符 2.2.2 迭代器 迭代器分为四种正向迭代器、反向迭代器reverse【这两种可读可写】、const正向迭代器、const反向迭代器 int main() {//正向迭代器string s(hello);//可读可写string::iterator it s.begin();while (it ! s.end()){cout *it ;it;}cout endl;//反向迭代器string::reverse_iterator rit s.rbegin();//注意类型while (rit ! s.rend()){cout *rit ;rit;//注意这里是,不是--}cout endl;可读不可写可读不可写//const正向迭代器const string s1(abcdefg);//可读不可写string::const_iterator cit s1.begin();while (cit ! s1.end()){cout *cit ;cit;}cout endl;//const反向迭代器string::const_reverse_iterator crit s1.rbegin();//注意类型while (crit ! s1.rend()){cout *crit ;crit;//注意这里是,不是--}cout endl;return 0; }遍历字符串 //遍历字符串 int main() {string s1(abcdefg);//第一种方法下标[]//[]这个操作符已经重载//类比数组for (size_t i 0; i s1.size(); i){cout s1[i] ;//[]相当于调用s1.operator[](i)//注意和内置类型的区别}cout endl;//第二种方法迭代器string::iterator it s1.begin();while (it ! s1.end()){cout *it ;it;}cout endl;//第三种方法:范围for循环//C11 原理上还是迭代器for (auto ch : s1){cout ch ;}cout endl; }s.size() 不包含’\0’begin指向第一个有效数据的位置end指向有效数据的下一个位置【大部分情况下是’\0’】 2.3 string类对象的容量操作 注意 size()与length()方法底层实现原理完全相同引入size()的原因是为了与其他容器的接口保持一致一般情况下基本都是用size()。clear()只是将string中有效字符清空【size】不改变底层空间大小。resize(size_t n) 与 resize(size_t n, char c)都是将字符串中有效字符个数改变到n个不同的是当字符个数增多时resize(n)用0来填充多出的元素空间resize(size_t n, char c)用字符c来填充多出的元素空间。 注意resize在改变元素个数时如果是将元素个数增多可能会改变底层容量的大小如果是将元素个数减少size减小capacity不变底层空间总大小不变。reserve(size_t res_arg0)为string预留空间不改变有效元素个数当reserve的参数小于string的底层空间总大小时reserve不会改变容量大小。【reserve提前开空间提高效率节约开空间的时间】 2.4 string类对象的修改操作 operator erase swap int main() {string s1(hello);string s2(abcde);s1.swap(s2);//效率高 s1和s2的指针进行交换swap(s1, s2);//效率低 深拷贝交换return 0; } c_str string s1(hello);string s2(abcde);cout s1.c_str() endl;//打印结果 hellofindsubstrrfind string s1(hello);cout s1.find(l) endl;//返回下标cout s1.find(m) endl;//返回值为size_t,没有找到返回npos(-1),因为是size_t注意 在string尾部追加字符时s.push_back( c ) / s.append(1, c) / s c’三种的实现方式差不多一般情况下string类的操作用的比较多操作不仅可以连接单个字符还可以连接字符串。对string操作时如果能够大概预估到放多少字符可以先通过reserve把空间预留好。 取文件的后缀代码展示 int main() {//find substrstring file(test.cpp);size_t pos file.find(.);if (pos ! string::npos){string suf file.substr(pos, file.size() - pos);cout file 后缀是 suf endl;}else{cout 没有后缀 endl;}//rfindsubstrstring file1(test.cpp.zip);size_t pos1 file1.rfind(.);if (pos1 ! string::npos){string suf1 file1.substr(pos1, file1.size() - pos1);cout file1 后缀是 suf1 endl;}else{cout 没有后缀 endl;}return 0; }分离协议 域名 资源名url代码展示 int main() {string url1(https://legacy.cplusplus.com/reference/string/string/?kwstring);string protocol;//协议size_t pos1 url1.find(://);//返回的是字符串的起始下标if (pos1 ! string::npos){protocol url1.substr(0, pos1);cout protocol: protocol endl;}else{cout 非法url endl;}string domain;//域名size_t pos2 url1.find(/, pos1 3);//从pos13这个位置开始搜索if (pos2 ! string::npos){domain url1.substr(pos1 3, pos2 - (pos1 3));cout domain: domain endl;}else{cout 非法url endl;}string uri url1.substr(pos2 1);cout uri: uri endl;return 0; }2.5 string类非成员函数 getline(cin, s); cin遇见空格会认为获取结束当遇见一行字符串的时候该字符串中间有空格那么就不会获取到整行的字符串。getline会获取一行的字符串遇到空格也不会认为获取终止。 四、总结 以上就是今天要讲的内容本文详细的介绍了STL简介、string的常用接口常见构造、容量操作、访问及遍历操作、修改、非成员函数等。希望给友友们带来帮助
http://www.hkea.cn/news/14513691/

相关文章:

  • 阿里云网站建设9元网站建设公司中
  • 天津城市网络建设苏州网站制作排名优化
  • 网站域名备案注册证书查询点卡平台网站开发
  • 自学服装设计下载如何为网站做seo体检
  • 电商网站开发平台pi netwo全国火车站等级最新排名
  • 网站目录怎么做外链网站服务器租用多少钱
  • 百度能搜到自己的网站在线之家
  • 安防公司做网站图片安徽省建设工程造价管理网站
  • 网站建设小组实训总结黄平网站建设
  • 惠州网站建设公司推荐乐云seo门户网站要求
  • 泉州洛江住房和城乡建设局网站龙华网站建设深圳信科
  • 网站怎样做链接深圳全网营销网站建设
  • 与狗做网站网站建设完成情况工作总结
  • 电子商务网站开发过程网站做百度联盟收入已经很低了
  • 重庆网站建设费用东营人力资源招聘信息网官网
  • 河北网站建设排名建立网站的链接结构有哪几种形式
  • phpnow 搭建网站建设银行网站 开户行怎么查
  • html5手机网站免费模板wordpress建立一个页面模板
  • php中网站不同模板后台逻辑代码怎么管理o2o网站系统建设
  • 网络推广和网站推广官方网站平台下载
  • 网站 建设 语言优化前网站现状分析
  • 视频网站的嵌入代码是什么seo综合查询软件排名
  • 包头外贸网站建设怎么在百度里面找网站
  • 外贸网站seo怎么做app制作开发教程
  • 焦作网站设计国外网站开发技术
  • 会计上大额网站费如何做分录网站设计数据库怎么做
  • 昭阳区住房和城乡建设管理局网站wordpress时光轴主题
  • 互联网网站类型策划书格式模板
  • php网站上传信息网络传播视听节目许可证
  • 工业设计创意网站做qq头像的网站有哪些