如何在没有循环的情况下填充 char 数组

Posted

技术标签:

【中文标题】如何在没有循环的情况下填充 char 数组【英文标题】:How to fill a char array without loop 【发布时间】:2021-02-17 21:37:43 【问题描述】:

在不使用循环的情况下,我需要在 c++ 中用字母填充 char 数组的帮助。这是我目前所拥有的。

int n, m;
    cin >> n >> m;
    char canvas[n][m] = 'B';

但是这行不通。有谁知道我该怎么做?

【问题讨论】:

提示:std::vector. @scohe001 循环不会需要很长时间吗? 您正在尝试创建一个 VLA,它不包含在 C++ 标准中(但在某些实现中作为扩展提供) 提示 2:像 char canvas[n][m] 这样的 VLA 是 not part of the C++ standard 并且有炸毁堆栈的趋势。 std::vector 将解决您的两个问题。 @Shadow_Walker 如果您将值写入许多不同的位置,则必须有人执行循环。你只能希望有人比你写得更好。 【参考方案1】:

您可以使用 2D std::vector 轻松完成此操作:

int n, m;
std::cin >> n >> m;
std::vector<std::vector<char>> canvas(n, std::vector<char>(m, 'B'));

【讨论】:

在我们正在进行的“为什么你应该使用std::vector”系列中输入#9,582,108 一维平面向量甚至比二维稀疏向量更好:std::vector&lt;char&gt; canvas(n*m, 'B'); 虽然代码处理的是char,所以总是有std::string 代替:std::string canvas(n*m, 'B');跨度>

以上是关于如何在没有循环的情况下填充 char 数组的主要内容,如果未能解决你的问题,请参考以下文章

C / C ++如何复制没有嵌套循环的多维char数组?

如何在没有for循环的情况下引用数组的多个索引值?

如何在不循环的情况下将数组(Range.Value)传递给本机 .NET 类型?

如何在没有任何循环php的情况下从数组中随机获取项目

如何在没有要映射的对象数组的情况下在 React.js 中循环和渲染元素?

如何使用外键数组在没有 _id 的猫鼬中填充?