如何在C++中构建复合for循环?

2024-04-29

是另一个fora 的计数器部分(第三部分)允许循环for环形?在我尝试优雅地编写代码来生成直角三角形,我写了这个,但它无法编译:

#include <stdio.h>
int main()
{   
    int i, j, N = 5;
    for (i = 1;
         i <= N; 
         (for (j = 1; j <= i; j++, printf("%c", '0'));), i++)
       printf("\n");
    }
    return 0;
}

不可以,只允许使用表达式或声明。

编辑:对不起。我以为你在谈论循环的条件部分。在循环的表达式部分中,仅允许使用表达式。

您可以使用包含此 for 循环的 lambda 表达式。例如

for ( i = 1;
      i <= N;
      []( int i ) { for ( j = 1; j <= i; j++, printf("%c", '0' ) ); }( i ), i++)

这是一个示范性示例

#include <iostream>

int main() 
{
    int N = 10;

    for ( int i = 1;
          i < N;
          []( int i ) 
          { 
            for ( int j = 1; j < i; j++, ( std::cout <<  '*' ) ); 
          }( i ), i++ )
    {
        std::cout << std::endl;
    }               

    return 0;
}

输出是

*
**
***
****
*****
******
*******
********

或者您可以在外循环之外定义 lambda 表达式,以使程序更具可读性。例如

#include <iostream>

int main() 
{
    int N = 10;

    auto inner_loop = []( int i ) 
    { 
        for ( int j = 1; j < i; j++, ( std::cout <<  '*' ) ); 
    };


    for ( int i = 1; i < N; inner_loop( i ), i++ )
    {
        std::cout << std::endl;
    }               

    return 0;
}

请考虑到,在一般情况下,其他帖子中显示的嵌套循环无法用 lambda 表达式替换循环。例如,外循环可以包含continue将跳过内循环的语句。因此,如果您需要在任何情况下都根据 continue 语句执行内部循环,那么使用 lambda 表达式进行构造将会很有帮助。:)

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在C++中构建复合for循环? 的相关文章

随机推荐

  • 如何仅在内存中运行 Django 测试数据库?

    我的 Django 单元测试需要很长时间才能运行 因此我正在寻找加快速度的方法 我正在考虑安装一个SSD http en wikipedia org wiki Solid state drive 但我知道这也有其缺点 当然 我可以用我的代码
  • 在空的 ggplot 中获取图例着色

    在呈现实际数据之前 我想制作一张与带有数据的图相同的图 但其中没有数据点 这有助于我解释如何解释这样的情节 而不用情节中的实际数据分散观众的注意力 所以在下面的代码中我基本上想交换geom point with geom blank 没问题
  • Android 索引滚动

    http developer android com design building blocks scrolling html http developer android com design building blocks scrol
  • 如何选择下拉单元格验证值

    我正在尝试在 Excel 工作表的数据验证中选择一个值 Set r Sheets DASHBOARD Cells Find What Selection Location gt LookAt xlWhole searchorder xlBy
  • 正则表达式:验证没有查询参数的 URL 路径

    我不是正则表达式专家 我正在绞尽脑汁尝试做一个看起来非常简单并且在 python 2 7 中工作的事情 在没有查询字符串的情况下验证 URL 的路径 无主机名 换句话说 以 开头的字符串允许字母数字值 并且不允许任何其他特殊字符 除了这些
  • Twitter 为开发者提供“离线”访问?

    我一直在与社交整合和授权的 oauth 框架密切合作 我知道 像 Facebook 一样 Twitter 为其应用程序实现了 oauth hook 我的问题是 有没有办法让访问令牌永远保持活动状态 就像 Facebook 拥有离线访问权限一
  • 是否有更有效或更简洁的方法来根据索引列表划分 df?

    我正在尝试切片 划分以下数据框 df pd DataFrame time 4 10 15 6 0 20 40 11 9 12 11 25 value 0 0 0 50 100 0 0 70 100 0 100 20 根据要分割的索引列表 5
  • “else”在Python中被认为是有害的?

    In an answer https stackoverflow com questions 855759 python try else 855783 855783 by S Lott https stackoverflow com us
  • 如何在 R 中对多维面板数据运行回归

    我需要对面板数据进行回归 它有 3 个维度 年份 公司 国家 地区 例如 year comp count value x value y 2000 A USA 1029 0 239481 2000 A CAN 2341 4 129333 2
  • 将应用程序委托定义为常量?

    我正在尝试编写 iPhone 应用程序 但遇到了问题 我已经在类中声明了一个常量作为应用程序委托 define ikub iKubMobileAppDelegate UIApplication sharedApplication deleg
  • 使用 Twilio 进行调用时是否可以传递自定义参数?

    我正在使用 Twilio PHP 库 但问题实际上与语言无关 我尝试做类似以下的事情 client new Services Twilio MyAccountSID My auth token client gt account gt ca
  • Qt 5.4/Qml:防止绑定循环

    我有一个全局单例 设置 它保存应用程序设置 当我尝试运行以下代码时 我得到一个QML CheckBox Binding loop detected for property checked CheckBox checked Settings
  • 未找到命令/使用自动测试通过“捆绑安装”安装缺少的 gem 二进制文件

    我对 RoR 完全陌生 我正在关注迈克尔 哈特尔的书 我无法运行自动测试 请提出问题所在以及解决方案 当我在 Rails 项目目录中的命令行运行 自动测试 时 我得到以下信息 bash autotest command not found
  • 信号器 CORS 问题

    在我的服务器端 我使用带有信号器的 Web api 2 在我的客户端 我使用的是 angularjs 这是我启动信号连接时的 http 请求 gt GET gt http example com signalr negotiate clie
  • 如何用c++编写可移植的代码?

    编写可移植代码时应该记住哪些事情 由于我是一个c 初学者 所以我想从一开始就练习它 Thanks 学习使用标准库 读书 例如this one http www mindview net Books TICPP ThinkingInCPP2e
  • BashOperator 为其他 PythonOperators 中使用的库引发 ImportError

    我的 dag 构建器模块中有一组任务 该模块使用 Airflow 中全球使用的 Python 运算符 我正在 kubernetes 上使用 docker 部署气流 任务失败并显示错误消息 no module named pandas 使用
  • Mysql乘法查询

    我有一个名为 产品 的表 其中包含一个名为 价格 的字段 我只想将每种产品的价格加倍 请您帮我提供一条可以在 PHP myAdmin 中运行的 SQL 语句 update products set price price 2
  • 如何使用 CodeIgniter 计算 MySQL 中给定行之前的行数?

    简单来说 如何计算某一行之前有多少行 我使用的是增量 ID 但行是随机删除的 因此仅检查 ID 是行不通的 比如说 如果我有 30 行 并且我根据名称 或任何实际内容 选择了一行 那么在该行之前有多少行 它可以是 16 1 12 或任何值
  • Winsock / BSD 套接字 - 接受目标 IP 不同于本地 IP 的 TCP 连接

    我将 LAN 上的一些传出 TCP 流量 最终也是 UDP 转发到本地 透明 代理服务器 然后再将其发送到互联网上 数据包似乎转发正确 我可以在 Wireshark 中看到 SYN 问题是绑定到端口X的accept 不接受与目标端口X的连接
  • 如何在C++中构建复合for循环?

    是另一个fora 的计数器部分 第三部分 允许循环for环形 在我尝试优雅地编写代码来生成直角三角形 我写了这个 但它无法编译 include