对网站的建议和优化网络营销策划以什么为核心
news/
2025/9/23 8:31:55/
文章来源:
对网站的建议和优化,网络营销策划以什么为核心,石家庄门户网站制作,快速开发平台有哪些一、基本概念
string本质是一个类#xff0c;封装了c风格字符串#xff08;以\0结尾的字符数组#xff09;#xff0c;具备自动管理内存功能#xff0c;提供了多种构造函数和多种删查增改的成员方法。string的本质特点归结以下几点#xff1a;
1、动态数组#xff1a;…一、基本概念
string本质是一个类封装了c风格字符串以\0结尾的字符数组具备自动管理内存功能提供了多种构造函数和多种删查增改的成员方法。string的本质特点归结以下几点
1、动态数组string底层是vectorchar实现的可以根据字符串长度自动增减所用内存。
2、字符序列string是一个字符序列可以被看做字符的连续集合。可以使用索引操作符[]访问、修改或添加字符。
3、标准库类string是c标准库的一部分这也就意味着它是经过广泛测试和优化的并且与其他标准库组件兼容。
4、提供自动内存管理与c风格字符串不同string自动管理内存减少了内存泄漏和其他问题的可能性简化了字符串的创建和销毁过程。
5、支持多种操作和c风格字符串相比增加了一系列成员函数和运算符功能例如、、、、、、、、[]、at()、find()、substr()、erase()、insert()、replace()等等。
二、构造函数
默认构造函数构造一个空字符串string();使用n个字符c构造字符串string(size_t n,char c);使用字符数组构造字符串string(const char* s);使用字符数组前n个字符string(const char* s,size_t n);使用另一个字符串构造string(const string str);使用初始化列表构造C11起string(initializer_listchar list);使用两个迭代器之间的内容构造 template class InputIterator string(InputIterator first, InputIterator last); string构造函数不止7种且在c标准演进和更新过程中string会出现更多或者减少个别构造函数
三、成员函数
一大小和容量
size_t string::size()和size_t string::length()返回字符串长度size_t string::max_size()返回字符串能容纳的最大字符数量size_t string::resize(size_t newsize,char _ch\000)重新设置字符串大小newsize长于原字符串长度用_ch补全短于原字符串长度截断size_t string::capacity()返回字符串当前分配储存空间的大小void string::reserve(size_t newcap)预申请字符串储存空间用于提升程序效率bool string::empty()判断字符串是否为空
二元素的访问
char string::operator[](size_t index)string封装的[]重载返回下标index位置的元素引用char string::at(size_t index)at函数和[]运算符功能一样返回下标index位置的元素引用char string::front()返回字符串首字符的引用char string::back()返回字符串尾字符的引用
三字符串比较
bool operator(const string)判断连个字符串是否相等bool operator!(const string)判断两个字符串是否不等bool operator(const string)比较两个字符串大小关系bool operator(const string)比较两个字符串大小关系bool operator(const string)比较两个字符串大小关系bool operator(const string)比较两个字符串大小关系int string::compare(int pos,int count,const string str,int spos,int scount)
比较两个字符串大小关系时底层逻辑是逐一字符比较assic码值
四字符串拼接
string string::operator(const string)返回拼接后的新字符串的值string string::operator(const string)返回原字符串的引用string string::append(const string str,int pos,int count)将str[pos,poscount)中内容拼接到原字符串末尾返回原字符串引用
五字符串修改
string string::clear()清空字符串内容但没有释放内存也就是size为0capacity不变string string::erase(int pos)删除第pos个字符后面的内容string string::erase(int pos,int count)删除第pos个字符后面的count个字符string string::insert(int pos,const char* chr,int cnt0)在pos后面插入字符串chr前cnt个字符string string::insert(int p,const string str,int r,int cMAX)在p后面插入str中r后面c个字符string string::replace(int p,int cnt,const string)在p后面用新字符串替换cnt个字符。
六查找函数
int string::find(const string str,int pos,int cnt)查找原字符串0-pos范围内str前cnt个字符子串或者字符第一次出现的位置返回下标int string::rfind(const string str,int pos,int cnt)查找原字符串0-pos范围内str前cnt个字符子串或者字符最后一次出现的位置返回下标int string::find_first_of(const string str,int pos,int cnt)查找str前cnt个任意字符在原字符串0-pos范围内第一次出现的位置返回下标int string::find_last_of(const string str,int pos,int cnt)查找str前cnt个字符任意一个在原字符串0-pos范围内最后一次出现的位置返回下标int string::find_first_not_of(const string str,int pos,int cnt)查找原字符串0-pos范围内第一个和str前cnt个任意字符不重复的字符出现的位置返回下标int string::find_last_not_of(const string str,int pos,int cnt)查找原字符串0-pos下标范围内第一个与str前cnt个字符不重复的字符位置返回下标
以上查找或者搜索函数有多种重载这里将部分不太好记忆理解的列举
七其他成员函数
const char* string::c_str()将c字符串转化为c风格字符串返回字符数组首地址。int string::copy(char *ptr,int count,int pos0)将字符串[pos,poscount)范围内字符赋值到ptr的[0,count)中返回成功复制字符数量。WARNING小心越界。string string::assign(const string str,int pos,int count)用str[pos,poscount)中内容赋值给原字符串string string::substr(int pos0,int countMAX)取原字符串[pos,poscount)范围内子串string string::swap(string str)交换两个字符串内容 string::begin() string::end() string::rbegin() string::rend() string::push_back() string::pop_back() 等等和vector中成员函数使用方法一致
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/911914.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!