织梦医疗网站源码网页后台常用设计尺寸

张小明 2025/12/28 2:29:08
织梦医疗网站源码,网页后台常用设计尺寸,怎么上传软件到网站,网易企业邮箱怎么发送文件一、什么是reverse()函数#xff1f;reverse()是C STL中一个非常有用的算法函数#xff0c;用于反转序列容器#xff08;如vector、list、deque、string等#xff09;中元素的顺序。它属于algorithm头文件中的算法库#xff0c;可以高效地将容器中的元素顺序完全颠…一、什么是reverse()函数reverse()是C STL中一个非常有用的算法函数用于反转序列容器如vector、list、deque、string等中元素的顺序。它属于algorithm头文件中的算法库可以高效地将容器中的元素顺序完全颠倒。二、基本用法1.反转整个容器#include iostream #include algorithm // reverse()函数在这里 #include vector using namespace std; int main() { vectorint numbers {1, 2, 3, 4, 5}; for (int num : numbers) { cout num ; } cout std::endl; // 输出: 1 2 3 4 5 // 使用reverse()反转整个vector reverse(numbers.begin(), numbers.end()); for (int num : numbers) { cout num ; } cout std::endl; // 输出: 5 4 3 2 1 return 0; }2.反转字符串#include iostream #include algorithm #include string using namespace std; int main() { string text Hello, World!; // 反转字符串 reverse(text.begin(), text.end()); cout 反转后: text std::endl; // 输出: !dlroW ,olleH // 判断回文字符串 string palindrome racecar; string original palindrome; reverse(palindrome.begin(), palindrome.end()); if (original palindrome) { cout original 是回文字符串! endl; } else { cout original 不是回文字符串! endl; } return 0; }3.反转部分元素#include iostream #include algorithm #include vector using namespace std; int main() { vectorint numbers {10, 20, 30, 40, 50, 60, 70}; for (int num : numbers) { cout num ; } cout endl; // 输出: 10 20 30 40 50 60 70 // 只反转中间部分第2到第5个元素索引1到4 reverse(numbers.begin() 1, numbers.begin() 5); for (int num : numbers) { cout num ; } cout endl; // 输出: 10 50 40 30 20 60 70 return 0; }三、reverse()函数的特点1.参数两个迭代器// 函数签名 templateclass BidirIt void reverse(BidirIt first, BidirIt last); // first: 指向要反转的第一个元素 // last: 指向要反转的最后一个元素的下一个位置2.时间复杂度O(n)需要遍历一半的元素进行交换对于n个元素大约需要n/2次交换3.原地操作reverse()直接在原容器上修改不创建新容器不需要额外的内存空间除了临时变量4.支持双向迭代器需要容器的迭代器支持双向移动和--适用于vector、deque、list、string等四、实际应用场景1.旋转数组#include iostream #include algorithm #include vector using namespace std; void rotateArray(vectorint arr, int k) { int n arr.size(); k k % n; // 处理k大于数组长度的情况 if (k 0) return; // 方法三次反转法 // 1. 反转整个数组 reverse(arr.begin(), arr.end()); // 2. 反转前k个元素 reverse(arr.begin(), arr.begin() k); // 3. 反转剩余元素 reverse(arr.begin() k, arr.end()); } int main() { vectorint numbers {1, 2, 3, 4, 5, 6, 7}; cout 原始数组: ; for (int num : numbers) { cout num ; } cout endl; // 向右旋转3位 rotateArray(numbers, 3); cout 旋转3位后: ; for (int num : numbers) { cout num ; } cout std::endl; // 输出: 5 6 7 1 2 3 4 return 0; }2.反转单词顺序#include iostream #include algorithm #include string #include sstream #include vector using namespace std; string reverseWords(string s) { // 先反转整个字符串 reverse(s.begin(), s.end()); stringstream ss(s); string word, result; vectorstd::string words; // 分割单词 while (ss word) { // 反转每个单词恢复原始顺序 reverse(word.begin(), word.end()); words.push_back(word); } // 重新组合 for (size_t i 0; i words.size(); i) { if (i 0) result ; result words[i]; } return result; } int main() { string sentence the sky is blue; cout 原始句子: sentence endl; cout 单词反转后: reverseWords(sentence) endl; // 输出: blue is sky the return 0; }3.数字反转#include iostream #include algorithm #include string using namespace std; int reverseNumber(int num) { // 处理负数 bool isNegative num 0; if (isNegative) num -num; // 转换为字符串 string numStr to_string(num); // 反转字符串 reverse(numStr.begin(), numStr.end()); // 转换回整数 int result stoi(numStr); // 恢复负号 return isNegative ? -result : result; } int main() { int num1 12345; int num2 -6789; cout num1 反转后: reverseNumber(num1) endl; // 54321 cout num2 反转后: reverseNumber(num2) endl; // -9876 return 0; }五、与其他反转方法的比较1.手动反转#include iostream #include vector using namespace std; void manualReverse(vectorint vec) { int left 0; int right vec.size() - 1; while (left right) { // 交换元素 swap(vec[left], vec[right]); left; right--; } } int main() { vectorint numbers {1, 2, 3, 4, 5}; cout 手动反转前: ; for (int num : numbers) { cout num ; } cout endl; manualReverse(numbers); cout 手动反转后: ; for (int num : numbers) { cout num ; } cout endl; return 0; }2.使用rbegin()和rend()#include iostream #include vector using namespace std; int main() { vectorint numbers {1, 2, 3, 4, 5}; cout 反向遍历不修改原数组: ; for (auto it numbers.rbegin(); it ! numbers.rend(); it) { cout *it ; } cout endl; // 输出: 5 4 3 2 1 cout 原数组未改变: ; for (int num : numbers) { cout num ; } cout endl; // 输出: 1 2 3 4 5 return 0; }六、C20及后续版本在C20中引入了范围库可以使用更简洁的语法#include iostream #include vector #include algorithm #include ranges // C20 using namespace std; int main() { vectorint numbers {1, 2, 3, 4, 5}; // C20范围视图不修改原容器 auto reversedView numbers | std::views::reverse; cout 使用C20范围视图反向遍历: ; for (int num : reversedView) { cout num ; } cout endl; // 输出: 5 4 3 2 1 cout 原数组未改变: ; for (int num : numbers) { cout num ; } cout endl; // 输出: 1 2 3 4 5 return 0; }七、总结今日题目reverse()是STL中一个简单但强大的算法函数用于反转容器中元素的顺序。记住以下要点包含头文件#include algorithm参数两个迭代器表示要反转的范围时间复杂度O(n)进行大约n/2次交换原地操作直接修改原容器适用容器支持双向迭代器的容器vector、deque、list、string、array等常见用途反转字符串或数组判断回文旋转数组反转单词顺序注意事项确保迭代器范围有效list有自己的reverse()成员函数效率更高使用reverse_copy()如果需要保留原容器今日题目回文检查器问题描述你正在开发一个文本处理工具需要检查用户输入的单词或句子是否是回文palindrome。回文是指正读和反读都一样的字符串忽略大小写、空格和标点符号。功能要求提示用户输入一个单词或句子清理输入移除空格、标点转换为小写使用reverse()函数辅助判断是否为回文显示判断结果输入格式一个字符串可能包含空格和标点符号。输出格式判断结果和详细的分析过程。解答#include iostream #include algorithm #include string #include cctype uisng namesapce std; int main() { string input; getline(cin, input); string cleaned; for (char ch : input) { if (isalnum(ch)) { cleaned tolower(ch); } } // 使用reverse()判断 string reversed cleaned; reverse(reversed.begin(), reversed.end()); // 输出结果 cout 结果: ; if (cleaned reversed) { cout 是回文 endl; } else { cout 不是回文 endl; } return 0; }
版权声明:本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!

定期做图书推荐的网站互联网营销顾问

FaceFusion在教育培训课程中的讲师形象多语言切换 在一场面向全球学员的在线编程课上,一位北美讲师正用流利的中文讲解Python函数式编程——口型自然、语调准确,甚至连讲课时习惯性推眼镜的小动作都如出一辙。然而,这位“中文讲师”从未学过…

张小明 2025/12/24 2:21:46 网站建设

专业网站运营托管做网站应下哪个软件

Lumafly模组管理器:5分钟掌握空洞骑士模组管理的艺术 【免费下载链接】Lumafly A cross platform mod manager for Hollow Knight written in Avalonia. 项目地址: https://gitcode.com/gh_mirrors/lu/Lumafly 还在为空洞骑士模组安装的复杂流程而烦恼吗&am…

张小明 2025/12/24 2:21:45 网站建设

网站后台图片模板长沙旅游网站制作

提升EmotiVoice合成语音自然度的五种调参技巧 在虚拟助手越来越“懂人心”、游戏NPC开始流露情绪、有声书朗读逐渐媲美真人演播的今天,用户早已不再满足于“能听清”的语音输出——他们想要的是听得进去、感同身受的声音。这种转变背后,是文本转语音&…

张小明 2025/12/24 2:21:43 网站建设

免费建站小程序电商网站源码

这个 Demo 主要做两件事:建一个 ScheduledThreadPoolExecutor(2),看看 2 线程时任务分配情况对比 scheduleAtFixedRate 和 scheduleWithFixedDelay 的行为每个任务打印:当前时间、线程名、第几次执行你可以新建一个 ScheduledDemo.java 直接运…

张小明 2025/12/24 2:21:41 网站建设

售后服务网站有趣网站之家

第一章:Open-AutoGLM多应用数据联动流程设计在构建智能化企业级系统时,Open-AutoGLM 作为核心推理引擎,承担着跨应用数据协同与智能决策的关键角色。其实现依赖于标准化的数据联动流程,确保多个异构系统间的信息高效流转与语义一致…

张小明 2025/12/24 2:21:39 网站建设

家教补习中心网站建设上海城隍庙门票多少钱一张

sndcpy终极指南:零门槛实现Android音频无线转发 【免费下载链接】sndcpy Android audio forwarding (scrcpy, but for audio) 项目地址: https://gitcode.com/gh_mirrors/sn/sndcpy 还在为手机音频只能在耳机或扬声器上播放而烦恼吗?sndcpy这个神…

张小明 2025/12/24 4:15:54 网站建设