如何使用std C ++在每个x位置插入一个项目? [关闭]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用std C ++在每个x位置插入一个项目? [关闭]相关的知识,希望对你有一定的参考价值。

我有以下向量:

 std::vector<int> v = {1,1,1,1,1,1,1,1,1,1,1,1};

我想每3个位置插入9个

 w = {1,1,1,9,1,1,1,9,1,1,1,9,1,1,1,9};

你能用c ++中的std算法提供一个oneliner吗?

答案

对于初学者,您希望每隔“第四”位置插入9个。

不会给你代码,但这是一个解决方案。

创建一个整数类型的新空向量。使用for循环并使用pushback方法将相应的元素添加到新数组中。在你的for循环中,你可以使用一个单独的计数器变量,从1开始,当它到达4然后再推回9,然后将计数器重置为1.我们使用三,因为我们在这里为零。

当我为0时,当i为1时推回0索引,推回1索引,当i为2时,推回2索引,当i = 3,7,11 *时(你的计数器变量将= 4)...推回值为9

希望这可以帮助。

另一答案

似乎我的问题很简单。我正在寻求使用现代C ++和std算法库的优雅方式。

这是我现在的解决方案。

std::vector<int> v = {1,1,1,1,1,1,1,1,1,1,1,1};
for (auto it = v.begin(); it!= v.end(); it+=3)
    it = v.insert(it,9);

以上是关于如何使用std C ++在每个x位置插入一个项目? [关闭]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用php在数组的两个键之间插入一个值?

如何在 Hive DB 框中的位置 0 处插入项目?

如何使用 Knockout.js 在特定位置将项目添加/插入到 ObservableArray

c ++如何创建包含未初始化字节大小的std :: string?

迭代一行中的每个单词(字符串)c ++

如何在 API 中隐藏迭代器以使用 std::map 包装器中的项目