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

专业微网站建设深圳企业社保网站官网

专业微网站建设,深圳企业社保网站官网,游戏外包公司怎么接活,屏蔽蜘蛛网站还会被收录吗简介 由于c的历史包袱#xff0c;c要兼容c语言#xff0c;c的字符串要兼容c语言#xff0c;在 C 中#xff0c;字符串通常使用两种主要的方式来表示#xff1a; C风格字符串#xff08;C-style strings#xff09;#xff1a; 依然是以 \0 结尾的字符数组。这种表示方…简介 由于c的历史包袱c要兼容c语言c的字符串要兼容c语言在 C 中字符串通常使用两种主要的方式来表示 C风格字符串C-style strings 依然是以 \0 结尾的字符数组。这种表示方式与 C 语言中的字符串相同。例如 const char* str Hello, World!; 在内存中它是一个字符数组最后一个字符是空字符 \0。 C 的标准库字符串std::string C 提供了一个 std::string 类型属于标准库的一部分。它管理自己的内存并且不需要手动处理 \0。使用 std::string 更加方便和安全。例如 #include string std::string str Hello, World!; std::string 处理字符串的长度、内存分配和释放因此开发者可以专注于字符串的内容而不必担心细节。 c风格类型的字符串我们都已经很熟悉\0的存在让我们在处理在处理字符串的时候需要时刻小心在手动拼接或复制字符串时经常会因为\0处理不妥而出错。c为我们提供了一个全新的string来处理字符串的长度、内存分配和释放因此开发者可以专注于字符串的内容而不必担心细节。 在一切开始之前我们先介绍一个网站。www.cplusplus.com是一个广受欢迎的C编程语言资源网站成立于2000年代初期。开始由一个c爱好者建立后来各路大佬汇聚网站内容也非常成熟可供我们学习和参考。 string类的常用接口说明 构造函数  c98就为我们提供了7个构造函数当然并不要求也没有必要对所有的函数烂熟于心大多数时候把这个当成词典来使用就可以了选常用的一部分学习。 学习类和对象很容易大家就能知道上面哪是重要的  不传参的默认构造拷贝构造和第四个用常量字符串初始化的构造。 #define _CRT_SECURE_NO_WARNINGS 1#include iostream #include stringusing namespace std;int main() {string s1;//默认构造string s2(123456789);string s3(s2);//拷贝构造cout s1 endl;cout s2 endl;cout s3 endl;cin s1;cout s1 endl;return 0; } 我们也可以向里面输入中文 便利string的三种方式 operator[] string类重载了[]这让我们可以像数组一样访问字符串。 同时注意看重载后返回的类型是引用不仅可以减少拷贝关键在于这样我们能够直接通过下标对字符串进行修改。在重载的时候加入了断言当pos大于size越界时编译器会报错。   #define _CRT_SECURE_NO_WARNINGS 1#include iostream #include stringusing namespace std;int main() {string s1;string s2(123456789);string s3(s2);cout s1 endl;cout s2 endl;cout s3 endl;cout s2[2] endl;//可以通过下标访问s2[0] 5;//也可以直接修改cout s2 endl;/*cin s1;cout s1 endl;*/return 0; }遍历string的第一种方法就是下标 [] #include iostream #include stringusing namespace std;int main() {string s1;string s2(123456789);string s3(s2);cout s1 endl;cout s2 endl;cout s3 endl;cout s2[2] endl;//可以通过下标访问s2[0] 5;//也可以直接修改cout s2 endl;/*cin s1;cout s1 endl;*/for (size_t i 0; i s2.size(); i){cout s2[i] ;}cout endl;return 0; } 迭代器  迭代器是一种用于遍历容器如数组、向量、链表等元素的对象。它提供了一种统一的方法来访问不同类型的容器中的元素所有的容器都可以由它访问而无需了解容器的内部结构。 正向迭代器  begin()返回第一个位置 end()返回最后一个位置的下一个位置。 for (size_t i 0; i s2.size(); i) {cout s2[i] ; } cout endl;string::iterator it s2.begin(); while (it ! s2.end()) {cout *it ;it; } cout endl;反向迭代器 反向迭代器提供了一个rbegin()指向最后一个位置 rend()指向第一个位置的前一个位置。这里任然要使用被重载了让它能倒着遍历。  string s1; string s2(123456789); string s3(s2);cout s1 endl; cout s2 endl; cout s3 endl; string::reverse_iterator it s2.rbegin(); while (it ! s2.rend()) {cout *it ;it; } cout endl; const迭代器 由于权限普通迭代器可读可写无法访问const对象const对象要用const迭代器只读不写。  const string s2(hello world!);//正向string::const_iterator cit s2.begin();while (cit ! s2.end()){cout *cit ;cit;}cout endl;//反向string::const_reverse_iterator rcit s2.rbegin();while (rcit ! s2.rend()){cout *rcit ;rcit;}cout endl; 范围for 字符赋值自动迭代自动判断结束底层由迭代器实现。适用于容器和数组。 for (size_t i 0; i s2.size(); i) {cout s2[i] ; } cout endl;string::iterator it s2.begin(); while (it ! s2.end()) {cout *it ;it; } cout endl;for (auto ch : s2) {cout ch ; } cout endl; 但是由于范围for()是给ch这个局部变量赋值并不能直接改变s2而迭代器是直接可以改变s2的。 string::iterator it s2.begin(); while (it ! s2.end()) {*it 2;cout *it ;it; } cout endl;for (auto ch : s2) {ch - 2;cout ch ; } cout endl;cout s2 endl; 如果要使用范围for()来改变传入的形参在传入时加上引用这样就不会生成拷贝而是直接修改传入的形参。  capacity 不同编译器对内存空间的处理是不一样的 string s; size_t sz s.capacity();cout original capacity: sz endl; for (int i 0; i 100; i) {s.push_back(c);if (sz ! s.capacity()){sz s.capacity();cout capacity changed: sz endl;} }在vs中有一个buff数组该开始中string中的数据是储存在buff中的当要储存的数据空间大于15时才会额外开空间该开始要把buff中的数据拷贝出来一共开了两倍空间后边都是开的1.5倍空间。c只规定了开空间但是怎么开空间没有做具体的要求。其他的编译器开空间的方式可能会不同。  频繁的扩容会导致效率低下为解决这一问题c提供了reserve()可以预留空间。 string s(xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx);cout s.size() endl; cout s.capacity() endl endl;s.reserve(10); cout s.size() endl; cout s.capacity() endl endl; s.reserve(30); cout s.size() endl; cout s.capacity() endl endl; s.reserve(40); cout s.size() endl; cout s.capacity() endl endl; s.reserve(50); cout s.size() endl; cout s.capacity() endl endl; 但是c标准并没有规定具体怎么处理空间不同的编译器也不一样。 仅仅反转字母 https://leetcode.cn/problems/reverse-only-letters/ 题目解析 题目中让我们仅仅反转字母首先我们要分类-----字母和非字母很简单所有的字母并不多我们只需要筛选出字母就好写一个函数实现这个功能 。要实现反转首先就要有两个位置使用双指针从首尾开始遍历。基本框架已经确定接下来就是敲定判断的细节了。首先考虑极限条件输入的没有字母left会一直加越界了所以处理left和right时要加上判断条件。 class Solution { public:bool Isletter(char ch){if (ch a ch z){return true;}if (ch A ch Z){return true;}return false;}string reverseOnlyLetters(string s) {if (s.empty()){return s;}size_t left 0;size_t right s.size() - 1;while(left right){while(left right !Isletter(s[left])){left;}while(left right !Isletter(s[right])){right--;}swap(s[left],s[right--]);}return s;} };
http://www.pierceye.com/news/446740/

相关文章:

  • 宁波做网站优化网站专题页怎么做
  • 西安网站建设q.479185700強网站改版301是什么意思
  • 网站推广服务 商务服务网站建设官方网站
  • 建设电影网站的关键苏州网站建设业务的公司
  • 水头哪里有做网站的店铺装修设计软件
  • 做网站的大骗子男女做爰视频免费网站
  • 建设一个网站选择的服务器安徽建站
  • 网站制作网站价格用网页制作个人网站
  • 衡水做网站报价网络工程毕设做网站
  • 做网站设计怎么样网站建设先进技术
  • 廊坊cms建站系统wd wordpress
  • vue做网站的好处是什么顺企网下载
  • 在线建站模板下载网站的软件
  • 阿里云网站全部清空怎么做重庆市渝快办官网
  • 关于网站优化的文章室内设计公司排名都有哪些
  • 英文外贸网站建设中国建筑出版在线官网app
  • 浙江网站建设服务公司shopex网站搬家
  • 网站服务器无法访问百姓装潢上海门店具体地址
  • 怎么做网站推广怎么样网页截图快捷键是哪个
  • 常州网站制作费用如何搭建网站的支付接口
  • 网站会员体系网站后台都有哪些
  • 宜昌网站建设制作公司网站301在哪做
  • 备案网站分布地点wordpress如何去掉amp:
  • 做一个小说阅读网站怎么做网站 没有备案 访问不了
  • 乐山乐人网站建设公司网站域名查主机名
  • 自适应网站的代表腰肌劳损的自我治疗和恢复的方法有什么?
  • 玉环城乡建设规划局网站企业网站源码带后台
  • 网站热点关键词免费可商用素材网站
  • 网站站内优化案例自己做的网页怎么上传网站吗
  • 深圳制作网站有用吗如何做网站优化