用相同的值填充了 wchar 数组元素

Filled a wchar array element with same value

本文关键字:wchar 数组元素 填充      更新时间:2023-10-16

我有一个wchar_t a[1000]数组。

我想用相同的值填充数组元素:

a[0]= 'w', a[1]= 'w',...a[999] = 'w'.

有没有快速的方法可以做到这一点?

(不使用 for 循环来分配每个值(

您可以使用 std::fill from 算法

#include <algorithm>
#include <array>
int main(){
    std::array<wchar, 1000> a;
    std::fill(a.begin(), a.end(), 'w');
}

在 GCC 中您可以使用

wchar_t a[1000] = {[0 ... 999] = 'w'};

将其声明为全局,并使用"w"对其进行初始化。 很抱歉您应该手动执行此操作,但 ISO C++不喜欢元编程。

wchar_t a[1000] { 'w', 'w' /*............*/ };

这是最快的方法,因为加载程序时数组数据将直接复制到内存中。

我能想到的最紧凑的方法是使用 std::vector - 它的一个构造函数正是你想要的(但它可能会在内部使用循环(:

std::vector<wchar_t> a(1000, 'w');