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

做瞹瞹嗳免费网站在线观看电子商城系统的设计与实现

做瞹瞹嗳免费网站在线观看,电子商城系统的设计与实现,营销型网站建设 高校邦,竹中建设官方网站文章目录1.迭代器(正向遍历)begin有两个版本2.反向迭代器(反向遍历)rbegin由两个版本3. at4. insert ——头插在pos位置前插入一个字符串在pos位置前插入n个字符在迭代器前插入一个字符5. erase从pos位置开始删除len个字符从迭代器位置开始删除6. replace——替换从pos位置开始… 文章目录1.迭代器(正向遍历)begin有两个版本2.反向迭代器(反向遍历)rbegin由两个版本3. at4. insert ——头插在pos位置前插入一个字符串在pos位置前插入n个字符在迭代器前插入一个字符5. erase从pos位置开始删除len个字符从迭代器位置开始删除6. replace——替换从pos位置开始的n个字符替换成想要的字符7. find ——查找例题 替换空格8. swap ——交换9. c_str10. substr11. getline1.迭代器(正向遍历) #includeiostream #includestring using namespace std; //迭代器 int main() {string s(hello world);string::iterator it s.begin();//遍历字符串while (it ! s.end()){cout *it ;it;}return 0; }s.begin()返回指向第一个位置的指针s.end()返回指向最后一个位置的下一个的指针 begin有两个版本 #includeiostream #includestring using namespace std; void func(const string s1) {string::iterator it s1.begin();//会报错while (it ! s1.end()){cout *it endl;it;} } int main() {string s(hello world);func(s);return 0; }当我们想要在一个函数中实现迭代器发现会报错是因为begin一共有两个版本 当函数的参数为const时需要返回const的迭代器 #includeiostream #includestring using namespace std; void func(const string s1) {string::const_iterator it s1.begin();//会报错while (it ! s1.end()){//*it 2; //由于it可以看作指针由const修饰后it指向的内容不能被修改cout *it endl;it;} } int main() {string s(hello world);func(s);return 0; }it可以看作指针由const修饰后it指向的内容不能被修改只能遍历和读容器的数据不能写 2.反向迭代器(反向遍历) #includeiostream #includestring using namespace std;int main() {//F反向迭代器string s(hello world);string::reverse_iterator rit s.rbegin();while (rit ! s.rend()){cout *rit ; //d l r o w o l l e hrit;}return 0; }s.rbegin()返回指向最后一个位置的指针s.rend()返回指向第一个位置前一个的指针 rbegin由两个版本 同样反向迭代器的rbegin也存在两个版本一个不用const和一个用const修饰的 #includeiostream #includestring using namespace std; int main() {string s(hello);string::const_reverse_iterator rit s.rbegin();while (rit ! s.rend()){//*rit 2; 会报错cout *rit endl;*rit;}return 0; }rit可以看作指针由const修饰后rit指向的内容不能被修改与it的const版本特性一致只能遍历和读容器的数据不能写 3. at 返回pos位置的字符 如果访问越界opertaor[ ]会直接报错 访问越界at会抛异常 4. insert ——头插 在pos位置前插入一个字符串 string insert (size_t pos, const string str); #includeiostream #includestring using namespace std; int main() {string s(world);s.insert(0, hello);//0位置前插入字符串cout s endl;//helloworldreturn 0; }在pos位置前插入n个字符 string insert (size_t pos, size_t n, char c); #includeiostream #includestring using namespace std; int main() {string s(world);s.insert(0,1,!);//pos位置插入1个字符!cout s endl;return 0; }在迭代器前插入一个字符 iterator insert (iterator p, char c); #includeiostream #includestring using namespace std; int main() {string s(world1);s.insert(s.begin()5, !);cout s endl;//world!1return 0; }s.begin()代表开头的位置s.begin()5代表1的位置在1之前插入字符! 5. erase 从pos位置开始删除len个字符 string erase (size_t pos 0, size_t len npos); npos代表缺省值即整数最大值 若len长度大于字符pos位置后的长度或者不给len值自动使用npos 则pos位置之后全部删除 #includeiostream #includestring using namespace std; int main() {string s(hello world);s.erase(0, 5);s.erase(2);//2位置后全部删除cout s endl;// world }0位置开始删除5个字符 从迭代器位置开始删除 iterator erase (iterator p); #includeiostream #includestring using namespace std; int main() {string s(hello world);s.erase(s.begin()1);cout s endl;//hllo world }从迭代器位置开始删除一个字符 6. replace——替换 从pos位置开始的n个字符替换成想要的字符 string replace (size_t pos, size_t len, const char* s); #includeiostream #includestring using namespace std; int main() {string s(hello world);s.replace(5, 1, %%d);cout s endl; }从下标为5的位置开始的1个字符 替换成%%d 7. find ——查找 size_t find (char c, size_t pos 0) const;查找字符,找到了返回当前pos位置的下标没有找到就返回npos(整形最大值) 例题 替换空格 将空格替换成%20 #includeiostream #includestring using namespace std; //替换空格问题 int main() {string s(i love you);int i 0;int sum 0;for (i 0; i s.size(); i){sum;}s.reserve(s.size() 2 * sum);//提前开空间避免replace扩容size_t pos s.find( );while (pos ! string::npos){s.replace(pos, 1, %20);pos s.find( , pos 3);//跳过上一次已经替换过的空格}cout s endl;return 0; }通过使用reserve提前扩容以及跳过上一次已经替换的空格进行效率提升 8. swap ——交换 void swap (string str); #includeiostream #includestring using namespace std; int main() {string s1(abc);string s2(wer);s1.swap(s2);//string类中swapcout s1 endl;cout s2 endl;swap(s1, s2);//类模板中的swapcout s1 endl;cout s2 endl;return 0; }string类中swap与类模板中的swap功能相同 但string类的swap只能针对string完成交换而类模板的swap可以对任意类型完成交换 string类的swap更高效一点直接修改两者指针的指向 修改s1指针指向原来s2指向的空间修改s2指针指向原来s1指针指向的空间 9. c_str const char*类型的指针 #includeiostream #includestring using namespace std; int main() {string s(hello world);cout s endl;//自定义类型 运算符重载cout s.c_str() endl;//返回一个const char*指针按照字符串打印 遇见\0结束return 0; }10. substr 从pos位置取len个字符的子串string substr (size_t pos 0, size_t len npos) const;从后往前查找字符 #includeiostream #includestring using namespace std; int main() {string file(test.zip.c);size_t pos file.rfind(.);//倒着查找字符.if (pos ! string::npos){string suffix file.substr(pos);cout suffix endl;}return 0; }有可能存在多个.存在所以从后往前找后缀名 11. getline 用来解决cin遇见空格停止的情况流提取默认使用空格/换行是多个值之间的分隔符 getline遇到换行结束stream getline (istream is, string str); #includeiostream #includestring using namespace std; int main() {//cins//输入 hello world 错误写法getline(cin,s);//正确写法return 0; }若输入hello worldcin会当成两个值若想把hello world当成一个整体使用getline
http://www.w-s-a.com/news/427373/

相关文章:

  • 公益网站建设需求车陂手机网站开发
  • 高端网站建设专业营销团队宁德网站建设51yunsou
  • 网站如何做cdn购物网站建设app开发
  • 简单的手机网站模板好看大方的企业网站源码.net
  • 沈阳住房和城乡建设厅网站网站个人备案做论坛
  • 企业建网站的目的开家网站建设培训班
  • 做怎么网站网站优化和推广
  • 建站工具 风铃网站每年空间域名费用及维护费
  • 网站开发工具 知乎工业软件开发技术就业前景
  • 永济微网站建设费用新手如何自学编程
  • 在本地怎么做网站深圳保障房申请条件2022
  • 广州天河区网站建设公司东莞网络游戏制作开发
  • 哪个网站做免费小程序rio门户网站的制作
  • 短网站生成查询网站所有关键词排名
  • 阿里云购买网站登录技术服务外包公司
  • 淘宝单页面网站手机制作游戏的软件
  • 汉中市网站建设wordpress编辑器好麻烦
  • 织梦做的网站快照被攻击在线看crm系统
  • 青岛物流公司网站建设网站建设提议
  • 企业网站建设高端品牌宿州注册公司多少钱
  • 个人微信公众号怎么做微网站吗湛江网站制作方案
  • 学校网站改版南京展厅设计装修
  • 手机网站有免费做的吗建设银行网站不能登录
  • 树莓派做影视网站网站建设企业 熊账号
  • 网站iis7.5配置免费网站建设模板下载
  • 生物公司网站建设方案wordpress自定义字段调用
  • 静态网站公用头部如何调用标题wordpress自动采集翻译插件怎么用
  • 网站做单链 好不好网站营销不同阶段的网站分析目标
  • 网线制作颜色顺序兰州网站推广优化
  • 北京沙河教做网站的企业融资以什么为基础