声明一个值为
回答
我通常使用for循环来初始化所有值。据我所知,你只能通过列表进行初始化,而不是所有元素的默认值。
我认为Luna正在尝试这样做:http://stackoverflow.com/questions/629017/ – coelhudo 2012-07-17 14:08:54
是的,我试图做这个问题一样,并使用循环将使程序运行较慢 – 2012-07-17 14:12:41
在每个维度使用std::fill
:
for (int i = 0; i < 100; ++i)
std::fill (mines[i], mines[i] + 100, '0');
还是在C++ 11:
for (auto &chars : mines)
std::fill (std::begin (chars), std::end (chars), '0');
更容易,使用的事实,阵列是连续的,你可以保存自己的循环:
std::fill (mines, mines + 100*100, '0');
为了消除那里的幻数,正如Shahbaz指出的那样,将mines + 100*100
与sizeof(mines)
。
你只会初始化做
char mines[100][100] = {'0'};
其余的第一要素将使用0
进行初始化(值不是字符),您将需要一个循环。像这样:
int row, column;
for (row = 0; row < 100; row++)
for (column = 0; column < 100; column++)
mines[row][column] = '0';
Luna,这被称为零初始化器,只能将所有值初始化为零对应的值:空指针,零。如果你尝试将char初始化为0,它将起作用,但其他任何值都不会。
更多信息here。
#include <iostream>
int main(int argc, char *argv[])
{
int value[2][2] = {0};
for(int i = 0; i < 2; ++i)
for (int j = 0; j < 2; ++j)
std::cout << (value[i][j] == 0) << std::endl;
return 0;
}
输出:
如果您需要一个特定的值进行初始化,在我看来Luchian与memset的最佳解决方案。
- 1. 声明一个值作为对象?
- 2. WHEN声明后另一个当声明
- 3. 将声明合并为一个声明还是不合并?
- 4. 返回一个声明的布尔值?
- 5. 选择从一个varchar值在声明
- 6. 声明一个值完全等于undefined
- 7. decltype可以声明一个r值吗?
- 8. 声明一个ArrayList
- 9. 在Ruby中声明一个哈希值为常量,默认值为一行
- 10. 为什么一个声明为unsigned int的变量产生一个负值?
- 11. 为DataGridView CellFormatting声明一个DataSet
- 12. 声明一个变量作为控制
- 13. 声明为一个MySQL表的行
- 14. 声明一个View + ViewModel作为内部
- 15. 声明一个功能组件为“纯”
- 16. 更新一个字段声明为VAL
- 17. 如何声明一个TField为空?
- 18. MySQL:为`show tables`声明一个游标?
- 19. 的Perl:声明值的列表作为一个常量
- 20. 为什么在声明时给变量赋一个空值?
- 21. 如何声明一个int为特定值/数
- 22. 为什么在相同的头文件中声明一个类为类声明
- 23. 声明内部类名称作为另一个声明的一部分
- 24. jUnit - 如何声明一个值不等于这两个值
- 25. 声明与一个声明多个变量中MiniZinc
- 26. 批次:添加%的一个值来声明另一个变量
- 27. NUnit声明一个集合,检查是否存在一个值
- 28. DTD:如何声明一个DTD必须有一个元素值?
- 29. 这里有一个声明
- 30. 声明一个空的Queryable?
我不确定你想问什么。你是否试图将矿井阵列的每个成员设置为0,或者你是否试图将第100个元素的第100个成员设置为0? – alexy13 2012-07-17 14:06:17
以这种方式使用的初始化列表将专门设置所有包含的值,不包含的所有内容都将初始化为0. – Chad 2012-07-17 14:09:54