C ++ |如何将整个2d数组设置为O.

时间:2018-04-08 14:59:34

标签: c++

我想将整个2D数组设置为O(不是0' s)。 我的尝试是:

df %>% mutate(cumsum.test = as.numeric(cumsum.val>1)) %>%
  group_by(loc.id, year) %>%
  mutate(SelctCond = ifelse(cumsum.test == 1 & 
                       cumsum.test == lead(cumsum.test, default = -1L) &
                       cumsum.test != lag(cumsum.test, default = -1L), TRUE , FALSE )) %>%
  filter(SelctCond) %>%
  select(-SelctCond)
# # Groups: loc.id, year [6]
# loc.id  year  week cumsum.val cumsum.test
# <int> <int> <int>      <dbl>       <dbl>
# 1      1  1981    23       3.30        1.00
# 2      1  1982    21       1.17        1.00
# 3      1  1983    22       2.07        1.00
# 4      2  1982    20       3.34        1.00
# 5      2  1983    20       2.25        1.00
# 6      3  1981    20       3.78        1.00

但那不起作用,我无法在互联网上找到任何东西。另一个问题是我得到了这个错误:&#34;变量i在没有被初始化的情况下被使用&#34; 当我试图运行下面的代码时

char field[10][10] = {'O'};

3 个答案:

答案 0 :(得分:1)

哟没有初始化我 尝试编写你的for循环 for(int i =&#34;你想用&#34开始循环的数字;; i&lt; 10; i ++)

例如=

import config

用&#34; o&#34;

初始化2d字段数组

以下代码

for(int i=0;i<10;i++)

答案 1 :(得分:1)

如果需要,还可以使用std::fill并为其提供第一个元素的地址并超过迭代器的最后一个元素:

#include <iostream>
#include <algorithm>

int main()
{
    char field[10][10];
    std::fill(&field[0][0], &field[9][9] + 1, 'O');

    // test
    std::cout << field[0][0] << std::endl;
    std::cout << field[3][5] << std::endl;
    std::cout << field[9][9] << std::endl;

    return 0;
}

答案 2 :(得分:0)

我想你要声明一个数组并用O填充数组。你的数组声明语法是错误的。正确的语法在

之下
char field[size][size] = {{Value, Value,..,size-1},{Value, Value,..,size-1},..,size-1};

例如:

char field[2][2] = {{O,O},{O,O}};

你的第二个错误是由于你在声明它们时没有初始化变量你必须给它们一些值,如:

int bombx = 0;
int bomby = 0;

我希望这会对您有所帮助