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

时间:2017-12-21 15:46:03

标签: c++ algorithm vector insert std

我有以下矢量:

 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吗?

2 个答案:

答案 0 :(得分:1)

对于初学者,你想在每个'第四'位置插入9个。

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

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

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

希望这有帮助。

答案 1 :(得分:0)

似乎我的问题很简单。我正在寻求使用现代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);