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

网站两边的悬浮框怎么做政务网站建设存在的问题

网站两边的悬浮框怎么做,政务网站建设存在的问题,研发外包公司,佛山网站建设开发本文介绍的是C关键字string中一些重要用法,以及各种字符串序列的处理操作 ——飘飘何所似,天地一沙鸥 文章目录前言一、string(字符串类)二、string类对象的容量操作2.1 size/length2.2 capacity2.3 empty/clear2.4 resize/reser…

本文介绍的是C++关键字string中一些重要用法,以及各种字符串序列的处理操作
——飘飘何所似,天地一沙鸥
在这里插入图片描述

文章目录

  • 前言
  • 一、string(字符串类)
  • 二、string类对象的容量操作
    • 2.1 size/length
    • 2.2 capacity
    • 2.3 empty/clear
    • 2.4 resize/reserve
  • 三、string类对象的访问及便利操作
    • 3.1 operator[]
    • 3.2 begin+end(迭代器)
    • 3.3 范围for
  • 四、string类对象的修改操作
    • 4.1 operator+=/push_back/append
    • 4.2 c_str
    • 4.3 find/rfind
    • 4.4 substr


前言

string是C++、java、VB等编程语言中的字符串,字符串是一个特殊的对象,属于引用类型。 在java、C#中,String类对象创建后,字符串一旦初始化就不能更改,因为string类中所有字符串都是常量,数据是无法更改,由于string对象的不可变,所以可以共享。对String类的任何改变,都是返回一个新的String类对象。 C++标准库中string类以类型的形式对字符串进行封装,且包含了字符序列的处理操作。


一、string(字符串类)

  1. 字符串是表示字符序列的类。
  2. 标准的字符串类提供了对此类对象的支持,其接口类似于标准字符容器的接口,但添加了专门用于操作单字节字符字符串的设计特性。
  3. string类是使用char(即作为它的字符类型,使用它的默认char_traits和分配器类型(关于模板的更多信息,请参阅basic_string)。
  4. string类是basic_string模板类的一个实例,它使用char来实例化basic_string模板类,并用char_traits
    和allocator作为basic_string的默认参数(根于更多的模板信息请参考basic_string)。
  5. 注意,这个类独立于所使用的编码来处理字节:如果用来处理多字节或变长字符(如UTF-8)的序列,这个类的所有成员(如长度或大小)以及它的迭代器,将仍然按照字节(而不是实际编码的字符)来操作。

总结:

  1. string是表示字符串的字符串类。
  2. 该类的接口与常规容器的接口基本相同,再添加了一些专门用来操作string的常规操作。
  3. string在底层实际是:basic_string模板类的别名typedefbasic_string<char,char_traits,allocator> string;
  4. 不能操作多字节或者变长字符的序列。在使用string类时,必须包含#include头文件以及using namespace std;

二、string类对象的容量操作

2.1 size/length

size_t size() const;
计算字符串长度类接口

#include<iostream>using namespace std;int main()
{//创建string类型的字符串strstring str = ("hello C++");//计算str大小std::cout << "The size of str is " << str.size() << " bytes.\n";return 0;
}

在这里插入图片描述
length与size并没有什么区别,仅仅只是在STL没有出现时,length就已经存在了,而我们也知道语言的发展一定是向下兼容的它不会去删除原有的东西,只会出现更多的补丁和更加新鲜的东西

#include<iostream>using namespace std;int main()
{string str = ("hello C++");std::cout << "The size of str is " << str.size() << " bytes.\n";std::cout << "The size of str is " << str.length() << " bytes.\n";return 0;
}

在这里插入图片描述

2.2 capacity

size_t capacity() const;
计算string类空间大小

#include<iostream>using namespace std;int main()
{string str = ("hello C++");std::cout << "The size of str is " << str.size() << " bytes.\n";std::cout << str.capacity() << endl;return 0;
}

在这里插入图片描述

2.3 empty/clear

bool empty() const;
检出字符串释放为空串,是则返回ture,否返回false
void clear();
清空字符串但是不会删除该字符串空间
在这里插入图片描述
仅仅只是一个判断string类字符串是否已经置为空。
在这里插入图片描述
S1中内容已经被删空但是我们看到S1所在空间并没有被释放还是在原来的地址,并且可以访问到,存入新的东西。

2.4 resize/reserve

void resize (size_t n);
void resize (size_t n, char c);

将有效字符改为n,并将多余的空间用c填充

void reserve (size_t n = 0);
为字符串预留空间
在这里插入图片描述

先将s的内容改为和s1一致然后对他们分别使用resize/reserve进行扩容,最后分别输出他们的内容和他们所扩容空间的大小。

resize/reserve根本的区别就在于一个对它所开的空间进行初始化而另一个并不会对开的空间进行初始化,还有一点就是当所开空间小于原有空间时他会保留前面n个数据,然年舍弃多余的部分
另外,在进行空间开辟工作时候,最后事先知道空间用量进行提前预留使用reserve会极大的提高时间复杂度

三、string类对象的访问及便利操作

3.1 operator[]

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

返回pos位置的字符,const string类对象调用
不做过多介绍类似于数组的方式来直接获取第pos个数据
在这里插入图片描述

3.2 begin+end(迭代器)

iterator begin();
const_iterator begin() const;

迭代器是string中便利字符串的一种重要工具,具体实现如下
在这里插入图片描述

3.3 范围for

范围for的底层实现就是调用迭代器,在使用的时候借用了关键字auto可以不用定义冗余的类型算是一种很方便的用法不过多介绍,代码如下

for(auto ch:s)
{
cout<<ch<<" ";
ch++;
}
cout<<endl;

四、string类对象的修改操作

4.1 operator+=/push_back/append

string& operator+= (const string& str);
string& operator+= (const char
s);
string& operator+= (char c)
*

最便捷的一种追加方式+=直接在原字符串上进行,可以追加string类/字符串/字符,直接+=
void push_back (char c);
尾插字符c,就是顺序表/链表的那种尾插方式,遍历尾插,不建议用效率很低

在这里插入图片描述
operator+=可以随意的进行字符/字符串/类的追加

append!是坑不作介绍不建议用

4.2 c_str

const char c_str() const;*
c_str()是Borland封装的String类中的一个函数,它返回当前字符串的首字符地址。 换种说法,c_str ()函数返回一个指向正规C字符串的 指针常量 ,内容与本string串相同。
在这里插入图片描述

c_str()返回的是一个临时指针随着原指针指向位置数值的改变

这样看来c_str好像没有实际的意义与用途,其实s_str多用于与其他各种操作一起进行我们只需要了解他的用法就可以,一般不会单独使用来实现什么东西。在进行c_str的使用时尽量在每次都strcpy一下防止丢失。

int main() {char ptr[5];string s = "12345";strcpy(ptr, s.c_str());cout << "s改变前ptr为:" << ptr << endl;s = "66666";cout << "s改变后ptr为:" << ptr << endl;return 0;//结果 ptr=”12345“
} 

4.3 find/rfind

size_t find (const string& str, size_t pos = 0) const;
size_t find (const char
s, size_t pos = 0) const;
size_t find (const char
s, size_t pos, size_t n) const;
size_t find (char c, size_t pos = 0) const;**

从字符串pos位置开始往后找字符c,返回该字符在字符串中的位置
在这里插入图片描述
此处我使用的是省略第二个参数,那么它所默认的位置就是从0位置开始查找也就是从S3字符串的h开始查找。
rfind则是反向查找

4.4 substr

string substr (size_t pos = 0, size_t len = npos) const;
在str中从pos位置开始,截取n个字符,然后将其返回
这是一个很好玩的接口,从第n个字符开始截取字符串中m个字符返回赋予,当我们知道某个分字符串在总字符串中的位置的时候,就可以定向的将所知的分字符串赋予任意一变量
在这里插入图片描述
在string类中它充当的是字符串截取的功能

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

相关文章:

  • 南宁做网站推广城市建设与管理局网站
  • wordpress网站背景设置网站页脚
  • 常州交通建设管理有限公司网站wordpress全自动赚钱
  • 网站竞品拦截广告怎么做网站建设现在还有没有市场
  • 网站建设云南才力同城手机网站开发
  • 泉州专业建站专业团队图片原图
  • 威海营销型网站建设天津企悦在线网站建设
  • 制作微信网页的网站房地产网站加盟
  • 注册账号自建网站电子商务网站的优点有那些
  • 网站用什么切版物流企业网站织梦模板
  • seo是做网站广州的房地产网站建设
  • 旅游景点网站建设规划书电子工程王力卓
  • 学做网站什么语言合适得到做网站公司
  • 汽车门户网站程序建一个网站的程序
  • 制作一个网站需要多少小时全媒体广告代理加盟
  • 成都网站建设详细内容网站如何做问卷调查问卷
  • 制作网站怎么制作小公司做网站需要
  • 做网站需要什么人网站搭建服务器
  • 西安网站建设iseeyuwordpress百度地图使用方法
  • 专业群建设 网站湖南房产网
  • 优秀设计集锦网站网页制作自学教程
  • 培训门户网站源码淘客网站怎么做百度
  • 长春网站营销学校网站方案
  • 做网站流量赚钱建设网站的获客渠道
  • 网站建设与管理教学方案怎么注销网站
  • 网站版建设青岛爱城市网app官方网站
  • 现在手机网站用什么做装饰网站建设
  • 有没有做美食的网站网站建设学院
  • 可信赖的大良网站建设所有复刻手表网站
  • 张家港外贸网站建设盐城市网站建设