是否有类似于 memset()
的函数可以将二维数组中的所有元素初始化为特定值?memset
仅能用于将值初始化为0
和-1
。
std::fill
:for(auto &arr : two_dim)
std::fill(std::begin(arr), std::end(arr), value);
std::vector
,std::array
和 C 数组。memset
将数组的所有元素初始化为除 -1
和 0
之外的值。只是每个元素中的所有字节都具有相同的值,例如 0x12121212
。#include <iostream>
#include <algorithm>
int a[row][column], value;
std::fill(a[0], a[0] + row * column, value);
std::fill
怎么样? - cigienmemset()
可以很好地将某些东西设置为42
或任何其他值。但是,std::fill
可能仍然是您想要的。 - Jesper Juhlmemset
将传递的值转换为unsigned char
,因此只能使用这些值。例如,您无法将整数数组初始化为INT_MAX
(除非INT_MAX == SCHAR_MAX
)。 - NathanOliverstd::vector<std::vector<int>> v(M, std::vector<int>(N, C)); // 声明一个大小为MxN且填充了C的矩阵
。 - brc-dd