我有一个wchar_t a[1000]
数组。
我想用相同的值填充数组元素:
a[0]= 'w', a[1]= 'w',...a[999] = 'w'.
有没有快速的方法可以做到这一点?
(不使用for循环分配每个值)
答案 0 :(得分:3)
您可以使用算法中的std :: fill
#include <algorithm>
#include <array>
int main(){
std::array<wchar, 1000> a;
std::fill(a.begin(), a.end(), 'w');
}
答案 1 :(得分:1)
在GCC中你可以使用
wchar_t a[1000] = {[0 ... 999] = 'w'};
答案 2 :(得分:0)
将其声明为全局,并使用'w'初始化它。很抱歉你应该手动完成,但ISO C ++不喜欢元编程。
wchar_t a[1000] { 'w', 'w' /*............*/ };
这是最快的方法,因为在加载程序时,数组数据将直接复制到内存中。
答案 3 :(得分:0)
我能想到的最紧凑的方法是使用std::vector
- 它的一个构造函数正在完成你想要的东西(它可能在内部使用循环):
std::vector<wchar_t> a(1000, 'w');