Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何使用标准C+;在每个x位置插入项目+;?_C++_Algorithm_Vector_Insert_Std - Fatal编程技术网

C++ 如何使用标准C+;在每个x位置插入项目+;?

C++ 如何使用标准C+;在每个x位置插入项目+;?,c++,algorithm,vector,insert,std,C++,Algorithm,Vector,Insert,Std,我有以下向量: std::vector<int> v = {1,1,1,1,1,1,1,1,1,1,1,1}; 你能用C++中的STD算法提供一个OnLeNER吗?p> 对于初学者,您希望每“第四”个位置插入9个 我不会给你代码,但这里有一个解决方案 创建integer类型的新空向量。使用for循环并使用pushback方法将相应的元素添加到新数组中。在for循环中,您可以使用一个单独的计数器变量,从1开始,当它达到4时,返回9,然后将计数器重置回1。我们使用三个,因为我们在这里

我有以下向量:

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

你能用C++中的STD算法提供一个OnLeNER吗?p> 对于初学者,您希望每“第四”个位置插入9个

我不会给你代码,但这里有一个解决方案

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

当i为0时,向后推0索引 当i为1时,向后推1索引, 当我为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);
向量v={1,1,1,1,1,1,1,1,1,1,1,1,1,1}; 对于(自动it=v.begin();it!=v.end();it+=3) it=v.插入(it,9);
请花些时间阅读,尤其是阅读和阅读。还有。最后,学习如何创建一个。简而言之:告诉我们您尝试了什么,以及如何失败。
for(int i=3;i错过了最后9个。@drescherjm,对不起,我错过了。那样的话,你需要
谢谢。但我要求一个优雅的方式使用std算法库。例如,使用std::inserter和For_每个函数。我想说,如果使用一个容器参数和两个步长和插入值参数将循环封装在一个模板函数中,这将足够优雅,例如,
template void insert_at_everyn(containerwhithinsert&container,int step,value const&value)
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);