C++ string的相关操作

本文解析了一个杭电OJ上的题目,并详细记录了C++中字符串(string)的相关操作,包括读取、复制、插入、删除等常用方法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

刚在杭电oj上做了个题目,想到用字符串string 的一些相关操作, 在这里记一下

这是那个题目描叙

排序

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)
Total Submission(s): 70918    Accepted Submission(s): 21780


Problem Description
输入一行数字,如果我们把这行数字中的‘5’都看成空格,那么就得到一行用空格分割的若干非负整数(可能有些整数以‘0’开头,这些头部的‘0’应该被忽略掉,除非这个整数就是由若干个‘0’组成的,这时这个整数就是0)。

你的任务是:对这些分割得到的整数,依从小到大的顺序排序输出。

 

Input
输入包含多组测试用例,每组输入数据只有一行数字(数字之间没有空格),这行数字的长度不大于1000。  

输入数据保证:分割得到的非负整数不会大于100000000;输入数据不可能全由‘5’组成。
 

Output
对于每个测试用例,输出分割得到的整数排序的结果,相邻的两个整数之间用一个空格分开,每组输出占一行。
 

Sample Input

     
0051231232050775
 
Sample Output

     
0 77 12312320
 

Source
个人整理的string 的一些相关笔记:
读取整行字符串(带空格):  
string n;
getline(cin,n);


头文件 #include <string>
声明一个字符串 st: string st;

拷贝构造函数生成st的复制字符串 s: string s(st);


将 st 的从第n+1个字符串开始到结束复制到a: string a(st,n);

复制指定位置n+1开始并指定复制长度 m: string b(st,n,m);


生成一个为 n 个 字符'c'的字符串: string c(n,'c');  //n int型


生成一个字符串ch: char ch[]={"abcdefg123"};
将ch的指定区间内的字符复制到d字符串: string d=(ch+x1,ch+x2); //x1 x2 int型
( x1 到 x2   不包括 x1 包括 x2  长度:x2-x1)


  使用assign() 函数:
string st1="abcde132";
string st2="opqrst321";
string st3,st4; //声明字符串


st3.assign(st1,5,3); //"132"  从st1第 6 个开始长度为3的字符串 
st4.assign(st2,2,string::npos); //"qrst321"  从st2第3个开始 直到结束

st1.swap(st2); //交换两个字符串的内容;

  使用+=,append(),push_back() 在尾部添加字符:
string s;
s+=st1; //直接将字符串st1加到s上


s.append(st1,2,5); //将字符串st1的第3个开始长度为5的字符串加到s
s.append(st2,2,string::npos); //与前同 ( 3~ 结尾)
s.append(5,'c'); //将5个'c'字符加到s上


  使用insert() 插入字符:  指定一个安插位置的索引, 被插入的字符串放在该索引后面;
s.insert(n,st); 从第 n+1个开始插入st字符串


  erase删除字符:
s.erase(2,3); //从第三个字符(s[2])开始 删除3个字符


  其他操作: 
返回字符串长度: s.length();   s.size();
判断是否为空: s.empty(); //返回0 1
利用迭代器访问元素: string::iterator it=s.begin;it!=s.end();it++
内容概要:本文深入探讨了Kotlin语言在函数式编程和跨平台开发方面的特性和优势,结合详细的代码案例,展示了Kotlin的核心技巧和应用场景。文章首先介绍了高阶函数和Lambda表达式的使用,解释了它们如何简化集合操作和回调函数处理。接着,详细讲解了Kotlin Multiplatform(KMP)的实现方式,包括共享模块的创建和平台特定模块的配置,展示了如何通过共享业务逻辑代码提高开发效率。最后,文章总结了Kotlin在Android开发、跨平台移动开发、后端开发和Web开发中的应用场景,并展望了其未来发展趋势,指出Kotlin将继续在函数式编程和跨平台开发领域不断完善和发展。; 适合人群:对函数式编程和跨平台开发感兴趣的开发者,尤其是有一定编程基础的Kotlin初学者和中级开发者。; 使用场景及目标:①理解Kotlin中高阶函数和Lambda表达式的使用方法及其在实际开发中的应用场景;②掌握Kotlin Multiplatform的实现方式,能够在多个平台上共享业务逻辑代码,提高开发效率;③了解Kotlin在不同开发领域的应用场景,为选择合适的技术栈提供参考。; 其他说明:本文不仅提供了理论知识,还结合了大量代码案例,帮助读者更好地理解和实践Kotlin的函数式编程特性和跨平台开发能力。建议读者在学习过程中动手实践代码案例,以加深理解和掌握。
内容概要:本文深入探讨了利用历史速度命令(HVC)增强仿射编队机动控制性能的方法。论文提出了HVC在仿射编队控制中的潜在价值,通过全面评估HVC对系统的影响,提出了易于测试的稳定性条件,并给出了延迟参数与跟踪误差关系的显式不等式。研究为两轮差动机器人(TWDRs)群提供了系统的协调编队机动控制方案,并通过9台TWDRs的仿真和实验验证了稳定性和综合性能改进。此外,文中还提供了详细的Python代码实现,涵盖仿射编队控制类、HVC增强、稳定性条件检查以及仿真实验。代码不仅实现了论文的核心思想,还扩展了邻居历史信息利用、动态拓扑优化和自适应控制等性能提升策略,更全面地反映了群体智能协作和性能优化思想。 适用人群:具备一定编程基础,对群体智能、机器人编队控制、时滞系统稳定性分析感兴趣的科研人员和工程师。 使用场景及目标:①理解HVC在仿射编队控制中的应用及其对系统性能的提升;②掌握仿射编队控制的具体实现方法,包括控制器设计、稳定性分析和仿真实验;③学习如何通过引入历史信息(如HVC)来优化群体智能系统的性能;④探索中性型时滞系统的稳定性条件及其在实际系统中的应用。 其他说明:此资源不仅提供了理论分析,还包括完整的Python代码实现,帮助读者从理论到实践全面掌握仿射编队控制技术。代码结构清晰,涵盖了从初始化配置、控制律设计到性能评估的各个环节,并提供了丰富的可视化工具,便于理解和分析系统性能。通过阅读和实践,读者可以深入了解HVC增强仿射编队控制的工作原理及其实际应用效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值