【C++】B2122 单词翻转

news/2025/2/4 18:56:38 标签: c, c
class="tags" href="/tags/C.html" title=c>cle class="tags" href="/tags/C.html" title=c>class="baidu_pl">
class="tags" href="/tags/C.html" title=c>cle_class="tags" href="/tags/C.html" title=c>content" class="tags" href="/tags/C.html" title=c>class="articlass="tags" href="/tags/C.html" title=c>cle_class="tags" href="/tags/C.html" title=c>content class="tags" href="/tags/C.html" title=c>clearfix">
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>cap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-bloclass="tags" href="/tags/C.html" title=c>ck" style="-webkit-tap-highlight-class="tags" href="/tags/C.html" title=c>color: rgba(0, 0, 0, 0);">

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>class="toclass="tags" href="/tags/C.html" title=c>c">

文章目录

  • 💯前言
  • 💯题目描述
    • 输入格式
    • 输出格式
    • 样例 #1
      • 样例输入 #1
      • 样例输出 #1
  • 💯一、我的做法
    • 代码实现:
    • 代码解析
    • 思路分析
  • 💯二、老师的第一种做法
    • 代码实现:
    • 代码解析
    • 思路分析
  • 💯三、C++ `reverse` 函数介绍
    • `reverse` 函数原型:
    • 示例:
    • 优点
  • 💯四、老师的第二种做法:使用 `reverse` 函数
    • 代码实现:
    • 代码解析
    • 思路分析
  • 💯五、对比分析
  • 💯六、拓展
  • 💯小结
    • 最开始的解法不通过
    • 老师优化后通过


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;我选择了通过手动反转每个单词的字符来恢复正确的单词顺序。

  1. 变量声明

    • <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> 用于存储从输入中读取的每个单词。
  2. 读取输入

    • <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;直到没有更多输入。
  3. 反转每个单词

    • <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;来实现反转操作。
  4. 输出每个单词

    • <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>:逐个输出反转后的字符。
  5. 换行

    • 每个单词输出后࿰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;直到完成反转。

  1. 初始化两个指针

    • <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> 分别是指向字符串开始和结束的两个指针。
  2. 交换字符

    • <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>。
  3. 逐步移动指针

    • <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;逐步将字符串反转。
  4. 输出反转后的字符串

    • <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> 函数反转字符串:

  1. 使用 <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>。
  2. 输出反转后的字符串

    • <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;比手动交换字符或逐个输出字符的方法要简单得多。


💯五、对比分析

  1. 我的做法

    • 优点:代码简单࿰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;不够高效。
  2. 老师的第一种做法

    • 优点:通过双指针交换字符࿰class="tags" href="/tags/C.html" title=c>c;比手动输出字符更高效。
    • 缺点:代码较为复杂࿰class="tags" href="/tags/C.html" title=c>c;理解起来可能稍微困难。
  3. 老师的第二种做法

    • 优点:使用 <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;我们还可以用其他方式来处理字符串或数组的反转操作:

  1. 利用栈:将字符压入栈中࿰class="tags" href="/tags/C.html" title=c>c;然后从栈中弹出字符来实现反转。
  2. 递归:通过递归函数逐步将字符串或数组的字符进行反转。

💯小结

通过对比不同的做法࿰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>
class="tags" href="/tags/C.html" title=c>class="blog-vote-box">

http://www.niftyadmin.cn/n/5841750.html

相关文章

CNN的各种知识点(三):有关于VGG16 的结构展开的问题(1)

有关于VGG16 的结构展开的问题&#xff08;1&#xff09; 1. VGG16 的原生结构2. model.avgpool 的作用原生 VGG16 中没有 avgpool 层&#xff1f;代码中的 model.avgpool 是什么&#xff1f; 3. model.classifier 的作用原生 VGG16 的 classifier用户代码中的 classifier 4. 为…

Day33【AI思考】-分层递进式结构 对数学数系的 终极系统分类

文章目录 **分层递进式结构** 对数学数系的 **终极系统分类**总览**一、数系演化树&#xff08;纵向维度&#xff09;**数系扩展逻辑树**数系扩展逻辑** **二、代数结构对照表&#xff08;横向维度&#xff09;**数系扩展的数学意义 **三、几何对应图谱&#xff08;空间维度&am…

2021版小程序开发5——小程序项目开发实践(1)

2021版小程序开发5——小程序项目开发实践(1) 学习笔记 2025 使用uni-app开发一个电商项目&#xff1b; Hbuidler 首选uni-app官方推荐工具&#xff1a;https://www.dcloud.io/hbuilderx.htmlhttps://dev.dcloud.net.cn/pages/app/list 微信小程序 管理后台&#xff1a;htt…

LeetCode--347. 前 K 个高频元素/Golang中的堆(container/heap)

例题链接-前k个高频元素 前言 以前都是用的C写算法题&#xff0c;最近也想熟悉一下golang的数据结构&#xff0c;故来一篇题解堆分析。 正文 这里重点不在分析题目&#xff0c;在于golang中的 container/heap 对于内部实现逻辑有兴趣的可以去看看源码。 这里先给出题解的代…

Vue和Java使用AES加密传输

背景&#xff1a;Vue对参数进行加密&#xff0c;对响应进行解密。Java对参数进行解密&#xff0c;对响应进行解密。不拦截文件上传类请求、GET请求。 【1】前端配置 安装crypto npm install crypto-js编写加解密工具类encrypt.js import CryptoJS from crypto-jsconst KEY …

54【ip+端口+根目录通信】

上节课讲到&#xff0c;根目录起到定位作用&#xff0c;比如我们搭建一个php网站后&#xff0c;注册系统是由根目录的register.php文件执行&#xff0c;那么我们给这个根目录绑定域名https://127.0.0.1&#xff0c;当我们浏览器访问https://127.0.0.1/register.php时&#xff0…

5分钟在本地PC上使用VLLM快速启动DeepSeek-R1-Distill-Qwen-32B

5分钟在本地PC上使用VLLM快速启动DeepSeek-R1-Distill-Qwen-32B 前言环境准备所需工具创建虚拟环境安装VLLM及依赖库 模型下载安装Hugging Face CLI下载DeepSeek-R1-Distill-Qwen-32B 模型启动启动命令启动确认 模型验证发送API请求示例输出 注意事项参考链接 前言 VLLM 是一个…

虚幻基础17:动画层接口

能帮到你的话&#xff0c;就给个赞吧 &#x1f618; 文章目录 animation layer interface animation layer interface 动画层接口&#xff1a;动画图表的集。仅有名字。 添加到动画蓝图中&#xff0c;由动画蓝图实现动画图表。