class="tags" href="/tags/C.html" title=
c>
content_views"
class="tags" href="/tags/C.html" title=
c>
class="markdown_views prism-tomorrow-night">
class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/class="tags" href="/tags/C.html" title=c>cb7f73class="tags" href="/tags/C.html" title=c>cda1a14130840e356class="tags" href="/tags/C.html" title=c>cb0b6f9e4.png#piclass="tags" href="/tags/C.html" title=c>c_class="tags" href="/tags/C.html" title=c>center" alt="在这里插入图片描述" width="100" />
<
class="tags" href="/tags/C.html" title=
c>
center>
博客主页: [小ᶻ☡꙳ᵃⁱᵍᶜ꙳]
class="tags" href="/tags/C.html" title=
c>
center>
<
class="tags" href="/tags/C.html" title=
c>
center>
本文专栏: C++
class="tags" href="/tags/C.html" title=
c>
center>
class="tags" href="/tags/C.html" title=c>c="https://img-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/00d4fdeb7b0d4dbb99e88f325ef249d8.gif#piclass="tags" href="/tags/C.html" title=c>c_class="tags" href="/tags/C.html" title=c>center" alt="在这里插入图片描述" width="1000" height="100" />
💯前言
- 在计算机科学中class="tags" href="/tags/C.html" title=c>c;字符串处理是一个非常基础且常见的任务。本题主要围绕如何将一个句子中的每个单词反转来进行练习。这个问题不仅考察了对字符串操作的理解class="tags" href="/tags/C.html" title=c>c;还涉及了不同的解决方法。在本篇文章中class="tags" href="/tags/C.html" title=c>c;我们将详细探讨我自己的做法、老师提出的两种做法class="tags" href="/tags/C.html" title=c>c;并深入讲解C++中 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数的使用class="tags" href="/tags/C.html" title=c>c;最后通过对比和拓展分析这些方法的优缺点。
C++ 参考手册
class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/f0db7class="tags" href="/tags/C.html" title=c>c348331440fa266b3class="tags" href="/tags/C.html" title=c>c24f558694.png#piclass="tags" href="/tags/C.html" title=c>c_class="tags" href="/tags/C.html" title=c>center" alt="在这里插入图片描述" />
💯题目描述
B2122 单词翻转
class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/34bd93aa8d2b41728b702326fa77b288.png" alt="在这里插入图片描述" />
小明同学写单词的时候喜欢反着写class="tags" href="/tags/C.html" title=c>c;比如 <class="tags" href="/tags/C.html" title=c>code>helloclass="tags" href="/tags/C.html" title=c>code> 他会写成 <class="tags" href="/tags/C.html" title=c>code>ollehclass="tags" href="/tags/C.html" title=c>code>。给出小明同学写的一个句子class="tags" href="/tags/C.html" title=c>c;请你将所有的单词复原。
输入格式
共一行class="tags" href="/tags/C.html" title=c>c;一个字符串表示句子class="tags" href="/tags/C.html" title=c>c;单词之间以空格分隔。
输出格式
每个单词一行。
样例 #1
样例输入 #1
<class="tags" href="/tags/C.html" title=c>code>olleh dlrow
class="tags" href="/tags/C.html" title=c>code>
样例输出 #1
<class="tags" href="/tags/C.html" title=c>code>hello
world
class="tags" href="/tags/C.html" title=c>code>
💯一、我的做法
代码实现:
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><iostream>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><string>
class="tags" href="/tags/C.html" title=c>class="token keyword">using class="tags" href="/tags/C.html" title=c>class="token keyword">namespaclass="tags" href="/tags/C.html" title=c>ce stdclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">mainclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
string sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">whileclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>cin class="tags" href="/tags/C.html" title=c>class="token operator">>> sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">forclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token keyword">int i class="tags" href="/tags/C.html" title=c>class="token operator">= sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">) class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; i class="tags" href="/tags/C.html" title=c>class="token operator">>= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; iclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[iclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">return class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>code>
代码解析
在这个实现中class="tags" href="/tags/C.html" title=c>c;我选择了通过手动反转每个单词的字符来恢复正确的单词顺序。
-
变量声明:
- <class="tags" href="/tags/C.html" title=c>code>string s;class="tags" href="/tags/C.html" title=c>code>:声明一个字符串变量 <class="tags" href="/tags/C.html" title=c>code>sclass="tags" href="/tags/C.html" title=c>code> 用于存储从输入中读取的每个单词。
-
读取输入:
- <class="tags" href="/tags/C.html" title=c>code>while(class="tags" href="/tags/C.html" title=c>cin >> s)class="tags" href="/tags/C.html" title=c>code>:使用 <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>cin >> sclass="tags" href="/tags/C.html" title=c>code> 读取一个单词class="tags" href="/tags/C.html" title=c>c;直到没有更多输入。
-
反转每个单词:
- <class="tags" href="/tags/C.html" title=c>code>for(int i = s.size() - 1; i >= 0; i--)class="tags" href="/tags/C.html" title=c>code>:我们使用一个从单词末尾到开头的 <class="tags" href="/tags/C.html" title=c>code>forclass="tags" href="/tags/C.html" title=c>code> 循环class="tags" href="/tags/C.html" title=c>c;通过访问每个字符并逆序输出class="tags" href="/tags/C.html" title=c>c;来实现反转操作。
-
输出每个单词:
- <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>cout << s[i];class="tags" href="/tags/C.html" title=c>code>:逐个输出反转后的字符。
-
换行:
- 每个单词输出后class="tags" href="/tags/C.html" title=c>c;使用 <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>cout << endl;class="tags" href="/tags/C.html" title=c>code> 换行class="tags" href="/tags/C.html" title=c>c;确保每个单词占一行。
思路分析
这段代码通过遍历每个字符并从末尾到开头进行输出来实现反转。通过这种手动操作字符的方式class="tags" href="/tags/C.html" title=c>c;能够准确地完成任务。它的优点是直接且易于理解class="tags" href="/tags/C.html" title=c>c;但缺点是代码稍显冗长class="tags" href="/tags/C.html" title=c>c;且没有利用C++标准库提供的便捷工具。
💯二、老师的第一种做法
老师给出的第一种做法是通过手动交换字符串中的字符来反转单词。下面是老师的代码实现:
代码实现:
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><iostream>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><class="tags" href="/tags/C.html" title=c>cstring>
class="tags" href="/tags/C.html" title=c>class="token keyword">using class="tags" href="/tags/C.html" title=c>class="token keyword">namespaclass="tags" href="/tags/C.html" title=c>ce stdclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">mainclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
string strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">whileclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>cin class="tags" href="/tags/C.html" title=c>class="token operator">>> strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">int left class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int right class="tags" href="/tags/C.html" title=c>class="token operator">= strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">) class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">whileclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(left class="tags" href="/tags/C.html" title=c>class="token operator">< rightclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">class="tags" href="/tags/C.html" title=c>char tmp class="tags" href="/tags/C.html" title=c>class="token operator">= strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[leftclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[leftclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">] class="tags" href="/tags/C.html" title=c>class="token operator">= strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[rightclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[rightclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">] class="tags" href="/tags/C.html" title=c>class="token operator">= tmpclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
leftclass="tags" href="/tags/C.html" title=c>class="token operator">++class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
rightclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< str class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">return class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>code>
代码解析
老师的做法同样采用了字符交换的方式来反转每个单词。其关键点在于通过两个指针从字符串的两端向中间移动class="tags" href="/tags/C.html" title=c>c;交换字符class="tags" href="/tags/C.html" title=c>c;直到完成反转。
-
初始化两个指针:
- <class="tags" href="/tags/C.html" title=c>code>int left = 0; int right = str.size() - 1;class="tags" href="/tags/C.html" title=c>code>:<class="tags" href="/tags/C.html" title=c>code>leftclass="tags" href="/tags/C.html" title=c>code> 和 <class="tags" href="/tags/C.html" title=c>code>rightclass="tags" href="/tags/C.html" title=c>code> 分别是指向字符串开始和结束的两个指针。
-
交换字符:
- <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>char tmp = str[left]; str[left] = str[right]; str[right] = tmp;class="tags" href="/tags/C.html" title=c>code>:通过一个临时变量 <class="tags" href="/tags/C.html" title=c>code>tmpclass="tags" href="/tags/C.html" title=c>code> 来交换 <class="tags" href="/tags/C.html" title=c>code>str[left]class="tags" href="/tags/C.html" title=c>code> 和 <class="tags" href="/tags/C.html" title=c>code>str[right]class="tags" href="/tags/C.html" title=c>code>。
-
逐步移动指针:
- <class="tags" href="/tags/C.html" title=c>code>left++class="tags" href="/tags/C.html" title=c>code> 和 <class="tags" href="/tags/C.html" title=c>code>right--class="tags" href="/tags/C.html" title=c>code>:交换后class="tags" href="/tags/C.html" title=c>c;<class="tags" href="/tags/C.html" title=c>code>leftclass="tags" href="/tags/C.html" title=c>code> 指针向右移动class="tags" href="/tags/C.html" title=c>c;<class="tags" href="/tags/C.html" title=c>code>rightclass="tags" href="/tags/C.html" title=c>code> 指针向左移动class="tags" href="/tags/C.html" title=c>c;逐步将字符串反转。
-
输出反转后的字符串:
- <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>cout << str << endl;class="tags" href="/tags/C.html" title=c>code>:输出反转后的单词。
思路分析
老师的做法通过交换字符来反转字符串class="tags" href="/tags/C.html" title=c>c;使用了双指针的技巧class="tags" href="/tags/C.html" title=c>c;这种方法比我的做法更具效率class="tags" href="/tags/C.html" title=c>c;因为它只需要一次遍历class="tags" href="/tags/C.html" title=c>c;每次只交换两个字符。相比手动逐个输出字符class="tags" href="/tags/C.html" title=c>c;这种方法更符合常见的反转思路class="tags" href="/tags/C.html" title=c>c;代码更简洁。
💯三、C++ <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数介绍
在C++标准库中class="tags" href="/tags/C.html" title=c>c;提供了一个名为 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 的函数class="tags" href="/tags/C.html" title=c>c;它可以轻松地反转一个容器(例如字符串、数组等)的元素顺序。该函数位于 <class="tags" href="/tags/C.html" title=c>code><algorithm>class="tags" href="/tags/C.html" title=c>code> 头文件中class="tags" href="/tags/C.html" title=c>c;使用时非常方便。
<class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数原型:
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token keyword">void class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">reverseclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(Bidireclass="tags" href="/tags/C.html" title=c>ctionalIterator firstclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">, Bidireclass="tags" href="/tags/C.html" title=c>ctionalIterator lastclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>code>
- first:指向待反转区间的起始元素的迭代器。
- last:指向待反转区间的结束元素的迭代器。
该函数会反转区间 <class="tags" href="/tags/C.html" title=c>code>[first, last)class="tags" href="/tags/C.html" title=c>code> 中的元素。
示例:
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">string s class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token string">"abclass="tags" href="/tags/C.html" title=c>cd"class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">reverseclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">beginclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">, sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">endclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< s class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; class="tags" href="/tags/C.html" title=c>class="token class="tags" href="/tags/C.html" title=c>comment">// 输出 "dclass="tags" href="/tags/C.html" title=c>cba"
class="tags" href="/tags/C.html" title=c>code>
优点
- 简洁:C++ <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数将反转操作封装得非常简洁。只需调用一次 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>c;就能完成字符串或数组的反转class="tags" href="/tags/C.html" title=c>c;代码更加清晰易懂。
- 高效:<class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 内部实现通常采用类似于双指针交换的方式class="tags" href="/tags/C.html" title=c>c;性能非常高。
💯四、老师的第二种做法:使用 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数
老师的第二种做法直接利用了 C++ STL 中的 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数class="tags" href="/tags/C.html" title=c>c;这使得反转操作变得更加简便。
代码实现:
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><iostream>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><string>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><algorithm>
class="tags" href="/tags/C.html" title=c>class="token keyword">using class="tags" href="/tags/C.html" title=c>class="token keyword">namespaclass="tags" href="/tags/C.html" title=c>ce stdclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">mainclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
string strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">while class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>cin class="tags" href="/tags/C.html" title=c>class="token operator">>> strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">reverseclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">beginclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">, strclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">endclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< str class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">return class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>code>
代码解析
这段代码通过 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数反转字符串:
-
使用 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数:
- <class="tags" href="/tags/C.html" title=c>code>reverse(str.begin(), str.end());class="tags" href="/tags/C.html" title=c>code>:直接使用 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数来反转字符串 <class="tags" href="/tags/C.html" title=c>code>strclass="tags" href="/tags/C.html" title=c>code>。
-
输出反转后的字符串:
- <class="tags" href="/tags/C.html" title=c>code>class="tags" href="/tags/C.html" title=c>cout << str << endl;class="tags" href="/tags/C.html" title=c>code>:输出每个反转后的单词class="tags" href="/tags/C.html" title=c>c;并换行。
思路分析
这种做法通过使用 C++ STL 中的现成函数来简化代码。<class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数提供了高效且简洁的反转操作class="tags" href="/tags/C.html" title=c>c;比手动交换字符或逐个输出字符的方法要简单得多。
💯五、对比分析
-
我的做法:
- 优点:代码简单class="tags" href="/tags/C.html" title=c>c;容易理解class="tags" href="/tags/C.html" title=c>c;适用于初学者。
- 缺点:冗长class="tags" href="/tags/C.html" title=c>c;效率较低class="tags" href="/tags/C.html" title=c>c;特别是手动反转每个字符时class="tags" href="/tags/C.html" title=c>c;不够高效。
-
老师的第一种做法:
- 优点:通过双指针交换字符class="tags" href="/tags/C.html" title=c>c;比手动输出字符更高效。
- 缺点:代码较为复杂class="tags" href="/tags/C.html" title=c>c;理解起来可能稍微困难。
-
老师的第二种做法:
- 优点:使用 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数class="tags" href="/tags/C.html" title=c>c;代码最简洁class="tags" href="/tags/C.html" title=c>c;符合C++的标准库优势class="tags" href="/tags/C.html" title=c>c;效率高。
- 缺点:可能需要对 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数有一定的了解。
💯六、拓展
除了 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数外class="tags" href="/tags/C.html" title=c>c;我们还可以用其他方式来处理字符串或数组的反转操作:
- 利用栈:将字符压入栈中class="tags" href="/tags/C.html" title=c>c;然后从栈中弹出字符来实现反转。
- 递归:通过递归函数逐步将字符串或数组的字符进行反转。
💯小结
通过对比不同的做法class="tags" href="/tags/C.html" title=c>c;我们可以看到class="tags" href="/tags/C.html" title=c>c;C++提供了多种有效的反转策略。通过手动字符交换、使用 <class="tags" href="/tags/C.html" title=c>code>reverseclass="tags" href="/tags/C.html" title=c>code> 函数class="tags" href="/tags/C.html" title=c>c;甚至使用 STL 容器的其他方法class="tags" href="/tags/C.html" title=c>c;我们可以灵活地选择最适合问题需求的解决方案。在实际开发中class="tags" href="/tags/C.html" title=c>c;选择合适的工具和方法class="tags" href="/tags/C.html" title=c>c;不仅能提高代码的可读性class="tags" href="/tags/C.html" title=c>c;还能提高程序的效率。
class="tags" href="/tags/C.html" title=c>c="https://img-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/00d4fdeb7b0d4dbb99e88f325ef249d8.gif#piclass="tags" href="/tags/C.html" title=c>c_class="tags" href="/tags/C.html" title=c>center" alt="在这里插入图片描述" width="1000" height="100" />
class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/fclass="tags" href="/tags/C.html" title=c>c6aclass="tags" href="/tags/C.html" title=c>c6d93b4745b591bb8a8e48f86779.png#piclass="tags" href="/tags/C.html" title=c>c_right" alt="在这里插入图片描述" width="1" />
最开始的解法不通过
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><iostream>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><string>
class="tags" href="/tags/C.html" title=c>class="token keyword">using class="tags" href="/tags/C.html" title=c>class="token keyword">namespaclass="tags" href="/tags/C.html" title=c>ce stdclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">mainclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
string sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">getlineclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>cinclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">, sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int i class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int index class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">forclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(i class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; i class="tags" href="/tags/C.html" title=c>class="token operator">< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; iclass="tags" href="/tags/C.html" title=c>class="token operator">++class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">ifclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[iclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">] class="tags" href="/tags/C.html" title=c>class="token operator">== class="tags" href="/tags/C.html" title=c>class="token class="tags" href="/tags/C.html" title=c>char">' 'class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">forclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token keyword">int j class="tags" href="/tags/C.html" title=c>class="token operator">= i class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; j class="tags" href="/tags/C.html" title=c>class="token operator">>= indexclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; jclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[jclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
index class="tags" href="/tags/C.html" title=c>class="token operator">= i class="tags" href="/tags/C.html" title=c>class="token operator">+ class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">else class="tags" href="/tags/C.html" title=c>class="token keyword">ifclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(i class="tags" href="/tags/C.html" title=c>class="token operator">== sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">) class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">forclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token keyword">int j class="tags" href="/tags/C.html" title=c>class="token operator">= iclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; j class="tags" href="/tags/C.html" title=c>class="token operator">>= indexclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; jclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[jclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">return class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>code>
class="tags" href="/tags/C.html" title=c>c="https://i-blog.class="tags" href="/tags/C.html" title=c>csdnimg.class="tags" href="/tags/C.html" title=c>cn/direclass="tags" href="/tags/C.html" title=c>ct/178e97ef1f2b4d5e8class="tags" href="/tags/C.html" title=c>cd4544a2a5d05b2.png" alt="在这里插入图片描述" />
老师优化后通过
<class="tags" href="/tags/C.html" title=c>code class="tags" href="/tags/C.html" title=c>class="prism language-class="tags" href="/tags/C.html" title=c>cpp">class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><iostream>
class="tags" href="/tags/C.html" title=c>class="token maclass="tags" href="/tags/C.html" title=c>cro property">class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive-hash">#class="tags" href="/tags/C.html" title=c>class="token direclass="tags" href="/tags/C.html" title=c>ctive keyword">inclass="tags" href="/tags/C.html" title=c>clude class="tags" href="/tags/C.html" title=c>class="token string"><string>
class="tags" href="/tags/C.html" title=c>class="token keyword">using class="tags" href="/tags/C.html" title=c>class="token keyword">namespaclass="tags" href="/tags/C.html" title=c>ce stdclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">mainclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
string sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">getlineclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>cinclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">, sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int i class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">int index class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token keyword">for class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(i class="tags" href="/tags/C.html" title=c>class="token operator">= class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; i class="tags" href="/tags/C.html" title=c>class="token operator">< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">) class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; iclass="tags" href="/tags/C.html" title=c>class="token operator">++class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">if class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[iclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">] class="tags" href="/tags/C.html" title=c>class="token operator">== class="tags" href="/tags/C.html" title=c>class="token class="tags" href="/tags/C.html" title=c>char">' 'class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">for class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token keyword">int j class="tags" href="/tags/C.html" title=c>class="token operator">= i class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; j class="tags" href="/tags/C.html" title=c>class="token operator">>= indexclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; jclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[jclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
index class="tags" href="/tags/C.html" title=c>class="token operator">= i class="tags" href="/tags/C.html" title=c>class="token operator">+ class="tags" href="/tags/C.html" title=c>class="token number">1class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">else class="tags" href="/tags/C.html" title=c>class="token keyword">if class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(i class="tags" href="/tags/C.html" title=c>class="token operator">== sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">.class="tags" href="/tags/C.html" title=c>class="token funclass="tags" href="/tags/C.html" title=c>ction">sizeclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">) class="tags" href="/tags/C.html" title=c>class="token operator">- class="tags" href="/tags/C.html" title=c>class="token number">2class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>class="token keyword">for class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">(class="tags" href="/tags/C.html" title=c>class="token keyword">int j class="tags" href="/tags/C.html" title=c>class="token operator">= iclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; j class="tags" href="/tags/C.html" title=c>class="token operator">>= indexclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">; jclass="tags" href="/tags/C.html" title=c>class="token operator">--class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">)
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">{
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< sclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">[jclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">]class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>cout class="tags" href="/tags/C.html" title=c>class="token operator"><< endlclass="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>class="token keyword">return class="tags" href="/tags/C.html" title=c>class="token number">0class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">;
class="tags" href="/tags/C.html" title=c>class="token punclass="tags" href="/tags/C.html" title=c>ctuation">}
class="tags" href="/tags/C.html" title=c>code>