java - 将 Java 程序转换为 C++

标签 java c++

<分区>

我已将此代码从 java 转换为 C++ 但我无法转换 boolean(变量)及其相关代码。请帮助并告诉我是否可以使用任何 header 。

boolean[][] bombs = new boolean[M+2][N+2];
  for (int i = 1; i <= M; i++){
     for (int j = 1; j <= N; j++){
        bombs[i][j] = (Math.random() < p);
    }
}
  for (int i = 1; i <= M; i++) {
     for (int j = 1; j <= N; j++){
        if (bombs[i][j]) cout<<"* ";
        else             cout<<". ";
    }
     cout<<endl;
  }
  int[][] sol = new int[M+2][N+2];
  for (int i = 1; i <= M; i++)
     for (int j = 1; j <= N; j++)
        for (int ii = i - 1; ii <= i + 1; ii++)
           for (int jj = j - 1; jj <= j + 1; jj++)
              if (bombs[ii][jj]) sol[i][j]++;

  cout<<endl;

  for (int i = 1; i <= M; i++) {
     for (int j = 1; j <= N; j++)
        if (bombs[i][j]) cout<<"* ";
        else             cout<<sol[i][j] + " ";
     cout<<endl;
  }

最佳答案

我不会为您编写代码(闻起来像作业),甚至不会开始对这些循环发表评论。

几个问题:

  1. boolean拼写为bool在 C++ 中

  2. 如果你想要可变长度的数组,你必须使用 std::vector ,或者您可以使用原始指针来获取数组语法(但不要忘记删除它们

  3. 顺便说一句,T[] foo在 C++ 中是不正确的。如果你想要一个静态数组,那就是 T foo[]

此外,仅仅因为您可以编写非常密集的 C++ 代码而运算符之间没有大括号或空格并不意味着您应该

Can 与 should 是良好的 c++ 的一个非常重要的部分——比许多其他限制性更强的语言(例如 Java)更重要。 </soapbox>

关于java - 将 Java 程序转换为 C++,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14358154/

相关文章:

java - 为什么我不能直接在代码中使用 unicode 字符串文字

java - 在 Java 上的 JForm 中滑动 JPanel 内容

c++ - const 和非常量函数的重载是如何工作的?

c++ - 将数组的原始指针转换为 unique_ptr

c++ - 试图理解来自 g++ 的简单反汇编代码

java - 桌面应用程序和网络应用程序之间的通信?

java - 为什么在方法重载中加宽比 Boxing 和 var-args 都好?

c++ - 在发出绘制信号之前获取 Gtk::DrawingArea 大小

c++ - 读取数字并转换为单词

Java 测验 - 正确时不接受用户输入