实验1 现代C++基础编程

实验任务1:

a841add1-eff9-40a7-bed2-7626d16c5c32

c10c9620-dde7-4cab-b5eb-0eb46c99b925

问题一:reverse直接将s1反转,反转后结果存到s1本身,reverse_copy则是将s1反转后的结果存在s2,s1自身不变

问题二:rotate 算法通过将容器中 [first,middle) 区间的元素移到[middle,last)之后,实现元素循环移位

              first:旋转范围的起始位置 middle:旋转分割点(以此为界交换前后两部分)last:旋转范围的结束位置(不包含)

 

 

 实验任务2:

4c82da82-480b-48ef-9a5f-fc476c35035b

68aea2b6-9bf7-4968-bb93-5e8b61ec80a7

问题一:用生成函数给容器指定范围元素赋值

问题二:一次遍历找完最大最小值,比分别调用效率高、代码简

问题三:替换后效果相同。lambda是生成[0,100]的随机数

 

实验任务3:

7a7685a0-abc0-4295-a99a-fb59ecbd668f

61c21d51-e37f-4be4-9364-901c6b57086d

问题一:对字符做特殊变换,'z'变'a','Z'变'A',其他字母后移一位,非字母不变

问题二:tolower:转小写;toupper:转大写

问题三:前两个是源范围起、止迭代器,第三个是目标起始迭代器,第四个是操作函数。若第三个参数改成s1.begin(),会直接修改原字符串s1

 

实验任务4:

13154f6a-563f-4595-8b8a-09d1a49f0ff0

c4d2f631-bbed-4f0f-b67a-e78c4765e2e7

 问题一:可将cin>>s改为getline(cin,s)

 

实验任务5:

1d93f62c-0245-4890-a015-574e34b79655

127a3da9-a16e-4b0d-9236-d4dc752e889b

 

 

实验任务6:

2c497662-0505-4259-a899-45e80e1d3618

c9481f24-6fa4-4b97-8e96-3b93fe260f02

 

 

 

实验任务7:

a5914d7a-6176-4ed4-946e-a9dec30c3ac0

c4fe1fb0-ff6c-4056-a9c5-29c1985594ab

4a2715ef-f157-4d5d-963d-658768b2a6f5

 

 

 

 

 

 
 

 

 

 

posted @ 2025-10-15 17:32  晚风吹动荷塘月  阅读(5)  评论(0)    收藏  举报