96SEO 2026-02-19 11:42 10
STL简介为什么学习string类标准库中的string类string类的模拟实现现代版写法的String类写时拷贝

libaray-标准模板库)是C标准库的重要组成部分不仅是一个可复用的组件库而且是一个包罗数据结构与算法的软件框架。
在惠普实验室完成的原始版本本着开源精神他们声明允许任何人任意运用、拷贝、修改、传播、商业使用这些代码无需付费。
唯一的条件就是也需要向原始版本一样做开源使用。
HP
SystemsInc公司开发继承自HP版本。
被GCC(Linux)采用可移植性好可公开、修改甚至贩卖从命名风格和编程风格上看阅读性非常高。
我们后面学习STL要阅读部分源代码主要参考的就是这个版本。
C语言中字符串是以’\0’结尾的一些字符的集合为了操作方便C标准库中提供了一些str系列的库函数但是这些库函数与字符串是分离开的不太符合OOP的思想而且底层空间需要用户自己管理稍不留神可能还会越界访问。
string类的具体信息可以通过cplusplus网站进行查阅
在使用string类时必须包含#include头文件以及using
world;push_back(s1);push_back(hello
world);//遍历方式2迭代器string::iterator
lt1;lt1.push_back(1);lt1.push_back(2);lt1.push_back(3);listint::iterator
world);//遍历方式3范围for通用的//底层角度它就是迭代器for
s1){e;//不会影响s1中的数据它是一个赋值拷贝要加上引用才会改变s1中的数据cout
lt1;lt1.push_back(1);lt1.push_back(2);lt1.push_back(3);for
world);//string::const_iterator
world);string::reverse_iterator
world);string::const_reverse_iterator
endl;//s1按字典序ASCII码排序//sort(s1.begin(),
s1.end());//第一个和最后一个不参与排序//sort(s1.begin(),
--s1.end());//前5个排序sort(s1.begin(),
endl;//erase效率不高慎用和insert类似要挪动数据s1.erase(0,
endl;//replace效率不高慎用和insert类似要挪动数据string
!isLetter(s[begin])){begin;}while
!isLetter(s[end])){--end;}swap(s[begin],
!isLetterOrNumber(s[begin])){begin;}while
!isLetterOrNumber(s[end])){--end;}if
false;}else{begin;--end;}}return
s2(11111111111111111111111111111111111111111111111111);
s;//知道需要多少空间提前开好s.reserve(200);size_t
s2(11111111111111111111111111111111111111111111111111);cout
x);//删除s2.resize(5);//s2[10];try{s2.at(10);}catch
clear()只是将string中有效字符清空不改变底层空间大小。
代码中没有演示resize(size_t
c)都是将字符串中有效字符个数改变到n个不同的是当字符个数增多时resize(n)用0来填充多出的元素空间resize(size_t
c)用字符c来填充多出的元素空间。
注意resize在改变元素个数时如果是将元素个数增多可能会改变底层容量的大小如果是将元素个数减少底层空间总大小不变。
reserve(size_t
res_arg0)为string预留空间不改变有效元素个数当reserve的参数小于string的底层空间总大小时reserver不会改变容量大小。
对string操作时如果能够大概预估到放多少字符可以先通过reserve把空间预留好。
url(https://gitee.com/ailiangshilove/cpp-class/blob/master/%E8%AF%BE%E4%BB%B6%E4%BB%A3%E7%A0%81/C%E8%AF%BE%E4%BB%B6V6/string%E7%9A%84%E6%8E%A5%E5%8F%A3%E6%B5%8B%E8%AF%95%E5%8F%8A%E4%BD%BF%E7%94%A8/TestString.cpp);size_t
str2(c:\\windows\\winhelp.exe);SplitFilename(str1);SplitFilename(str2);return
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback