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

电力网站怎么做网站建设运营策划

电力网站怎么做,网站建设运营策划,梦织网站,互联网网站建设公司博客主页:【夜泉_ly】 本文专栏:【C】 欢迎点赞👍收藏⭐关注❤️ 文章目录 💡前言💡访问及遍历1.速览2.operator[] -重点⭐2.1函数原型2.2用法2.3与at 3.迭代器3.1函数原型3.2用法速览3.3简介 4.范围for4.1用法速览4.2…

博客主页:【夜泉_ly】
本文专栏:【C++】
欢迎点赞👍收藏⭐关注❤️

在这里插入图片描述

文章目录

  • 💡前言
  • 💡访问及遍历
    • 1.速览
    • 2.operator[] -重点⭐
      • 2.1函数原型
      • 2.2用法
      • 2.3与at
    • 3.迭代器
      • 3.1函数原型
      • 3.2用法速览
      • 3.3简介
    • 4.范围for
      • 4.1用法速览
      • 4.2简介
    • 5.访问首尾元素
      • 5.1函数原型
      • 5.2用法速览

💡前言

在这篇文章中,我将继续简单探讨 C++string 的基本用法。写这篇文章的主要目的是帮助我巩固所学的知识,同时也便于未来的复习和参考。

如果你想大致的了解string的基本用法,也可以留下来看看。

对于那些希望深入学习更多细节的读者,可以去看看这个网站:cplusplus.com,以获取更全面的参考资料。

💡访问及遍历

1.速览

int main()
{string str("Hello World");//最简单的遍历方式就是operator<<cout << str << endl;//用下标遍历:for(size_t i = 0; i < str.size(); i++){cout << str[i];}cout << endl;//用迭代器遍历:string::iterator i = str.begin();while(i != str.end()){cout << *i++;}cout << endl;//用范围for遍历:for(auto e : str){cout << e;}cout << endl;//访问首尾元素:cout << str.front() << " " << str.back() << endl;return 0;
}

Output:

Hello World
Hello World
Hello World
Hello World
H d

2.operator[] -重点⭐

2.1函数原型

char& operator[] (size_t pos);
const char& operator[] (size_t pos) const;

2.2用法

和数组的用法是一样的。

2.3与at

at也是string类中提供的函数,其函数原型:

char& at (size_t pos);
const char& at (size_t pos) const;

如果正常使用,[]at是一致的,一般不用at,用[]
如果乱传pos[]at有些许不同:

  • pos不符合[]at的规范,[]会断言报错,at会抛异常:

    string str("Hello World");
    str[666];
    

    在这里插入图片描述

    try
    {str.at(666);
    }
    catch (const std::exception& e)
    {cout << e.what() << endl;
    }
    

    在这里插入图片描述

  • 对于[]

    • pos0 ~ size-1没有问题。
    • 如果是常对象,possize没有问题。
    • 其他情况,都是未定义行为。
      在这里插入图片描述
  • 对于at

    • pos只能传0 ~ size-1
    • 其他情况,会抛出异常。
      在这里插入图片描述

3.迭代器

3.1函数原型

begin:

iterator begin();
const_iterator begin() const;

end:

iterator end();
const_iterator end() const;

rbegin:

reverse_iterator rbegin();
const_reverse_iterator rbegin() const;

rend:

reverse_iterator rend();
const_reverse_iterator rend() const;

cbegin、cend、crbegin、crend:

const_iterator cbegin() const noexcept;
const_iterator cend() const noexcept;
const_reverse_iterator crbegin() const noexcept;
const_reverse_iterator crend() const noexcept;

3.2用法速览

begin、end、rbegin、rend:

int main()
{string str(6, 0);//正向遍历并修改:string::iterator it = str.begin();for (char i = '0'; it != str.end(); i++, it++){*it = i;}cout << "str: " << str << endl;//反向遍历并打印:string::reverse_iterator rit = str.rbegin();while (rit != str.rend()){cout << *rit;rit++;} cout << endl;return 0;
}

Output:

str: 012345
543210

与begin、end、rbegin、rend不同,
cbegin、cend、crbegin、crend只能针对const修饰的string类对象,一般不用这几个。

3.3简介

迭代器是像指针一样的类型,有可能是指针,有可能不是指针。
一般用于对应STL中各种函数的接口,其作用也类似于指针。
string中,一般不会手动控制迭代器,推荐使用[]

正向迭代:
begin指向首元素,end指向末尾元素后一个位置,加加迭代器使其正向移动一步。
反向迭代:
rbegin指向末尾元素,rend指向首元素前一个位置,加加迭代器使其反向移动一步。
注意
这里都是开区间:[begin,end)、 [rbegin,rend)

例如:

void Test()
{string str("B 6 6 6 E");string::iterator it_B = str.begin();string::iterator it_E = str.end();string::reverse_iterator rit_B = str.rbegin();string::reverse_iterator rit_E = str.rend();cout << "*(it_B):" << *it_B << "	*(it_E - 1):" << *(it_E - 1) << endl;cout << "*(rit_B):" << *rit_B << "	*(rit_E - 1):" << *(rit_E - 1) << endl;
}

Output:

*(it_B):B       *(it_E - 1):E
*(rit_B):E      *(rit_E - 1):B

另外,迭代器中加了assert断言,因此只要位置不合理都会直接报错,比如尝试让上面代码中的it_B--;
在这里插入图片描述
或者让it_E++:
在这里插入图片描述

4.范围for

只要支持迭代器,就支持范围for!!!

4.1用法速览

void Test()
{string str("Hello World");for (char c : str)cout << c;cout << endl;for (char c : str.rbegin())cout << c;
}

Output:

Hello World

4.2简介

范围for是C++给出的一颗语法糖,使用极其便利。
在上面我标了一句话:只要支持迭代器,就支持范围for!!!
因为范围for是基于迭代器实现的。

void Test()
{string str("Hello World");for (auto it = str.begin(); it != str.end(); it++)cout << *it;for (char c : str)cout << c;
}

在这里插入图片描述
在这里插入图片描述

5.访问首尾元素

5.1函数原型

      char& back();
const char& back() const;char& front();
const char& front() const;

5.2用法速览

只能提供首尾元素,用的不多。

void Test()
{string str("6 6 6 6 6");str.front() = 'F';str.back() = 'B';cout << "Front:" << str.front() << endl;cout << "Back:" << str.back() << endl;
}

Output:

Front:F
Back:B

需注意,如果为空串,会导致未定义行为。

在这里插入图片描述


希望本篇文章对你有所帮助!并激发你进一步探索编程的兴趣!
本人仅是个C语言初学者,如果你有任何疑问或建议,欢迎随时留言讨论!让我们一起学习,共同进步!

http://www.yayakq.cn/news/614344/

相关文章:

  • 公共法律服务网站平台建设预算北京网站设计公司排行
  • 吴江网站制作wordpress 弹窗 翻页
  • 上海松江做网站公司济南制作网站软件
  • 园林绿化效果图制作优化建站
  • 网站基础设施建设哈尔滨微信网站建设
  • 网站需要具备条件推广策略方案
  • 小说网站制作开源wordpress屏蔽右键
  • 怎么在网站做自己的产品广告开源网站统计
  • 大连网站建设主页网站开发 语言
  • 做网站要用到的技术软件下载网站怎么做
  • 网站按内容分可以分为郑州新感觉会所网站哪里做的
  • 如何做网站授权发果怎么做视频网站
  • 适合程序员做项目笔记的网站都有哪些网站
  • 宁波免费建站seo排名网页制作的软件有哪些
  • 深圳住房和建设局网站1万元可以注册公司吗
  • 社保扣款怎么在社保网站上做》聊城网站制作公司
  • 乐清网站的建设中油共享平台app
  • 深圳网站建设品牌滨州网站定制
  • 什么是营销型的网站推广成都网站建设收费明细
  • 学做招投标的网站邢台市最新消息
  • 一个网站的主题和设计风格哪个网站帮别人做ppt
  • 网站开发 功能不会写单页竞价网站
  • 网站建设与维护工作待遇互联网法律服务平台
  • 微网站的建设模板有哪些网页设计心得体会报告怎么写
  • 网站开发软件最流行网络推广外包注意哪些
  • 仙桃做网站的个人租点点电脑租赁公司
  • 网站上面的内容里面放照片怎么做的婚庆公司logo设计图片
  • 中迅做网站是模板站吗软件开发培训机构排名
  • 如何维护自己公司的网站达人室内设计网论坛
  • 甘肃省第九建设集团网站首页国外 网页框架搭建的网站