C++ 使用迭代器修改容器的内容

C++ 使用迭代器修改容器的内容,c++,c++11,vector,iterator,C++,C++11,Vector,Iterator,我有一个向量,我正在使用迭代器修改它的内容。如果满足某些条件,我需要修改向量中下一个元素的内容。我认为以下方法可行: *(it + 1)++; 这对我来说很有意义,因为我已经能够使用条件It!=vec.end()-1。但它似乎对容器的内容物没有任何影响,因此我决定如下: ++it; *it += 1; --it; 它是前一行的三行,我认为它是一个黑客。有更好的方法吗?在向量中增加下一个元素的技巧是什么?你的意思是: (*(it + 1))++; 或++*(it+1)。这是一个优先问题,类似

我有一个向量,我正在使用迭代器修改它的内容。如果满足某些条件,我需要修改向量中下一个元素的内容。我认为以下方法可行:

*(it + 1)++;
这对我来说很有意义,因为我已经能够使用条件
It!=vec.end()-1
。但它似乎对容器的内容物没有任何影响,因此我决定如下:

++it;
*it += 1;
--it;
它是前一行的三行,我认为它是一个黑客。有更好的方法吗?在向量中增加下一个元素的技巧是什么?

你的意思是:

(*(it + 1))++;
++*(it+1)。
这是一个优先问题,类似于
*p++
如何增加指针,而不是指向的值

或者,对于随机访问迭代器,您可以编写
it[1]++
++it[1]

除非您需要后增量的属性,否则通常首选使用前增量。这是因为增量后按值返回,因此如果对象有一个昂贵的复制过程,但实际上不需要复制,那么就浪费了制作复制的时间

你的意思是:

(*(it + 1))++;
++*(it+1)。
这是一个优先问题,类似于
*p++
如何增加指针,而不是指向的值

或者,对于随机访问迭代器,您可以编写
it[1]++
++it[1]

除非您需要后增量的属性,否则通常首选使用前增量。这是因为增量后按值返回,因此如果对象有一个昂贵的复制过程,但实际上不需要复制,那么就浪费了制作复制的时间

你的意思是:

(*(it + 1))++;
++*(it+1)。
这是一个优先问题,类似于
*p++
如何增加指针,而不是指向的值

或者,对于随机访问迭代器,您可以编写
it[1]++
++it[1]

除非您需要后增量的属性,否则通常首选使用前增量。这是因为增量后按值返回,因此如果对象有一个昂贵的复制过程,但实际上不需要复制,那么就浪费了制作复制的时间

你的意思是:

(*(it + 1))++;
++*(it+1)。
这是一个优先问题,类似于
*p++
如何增加指针,而不是指向的值

或者,对于随机访问迭代器,您可以编写
it[1]++
++it[1]


除非您需要后增量的属性,否则通常首选使用前增量。这是因为增量后按值返回,因此如果对象有一个昂贵的复制过程,但实际上不需要复制,那么就浪费了制作复制的时间

您正在创建一个指针并将其递增。 取消对迭代器的引用,然后递增

(*(it + 1))++;


您正在创建一个指针并将其递增。 取消对迭代器的引用,然后递增

(*(it + 1))++;


您正在创建一个指针并将其递增。 取消对迭代器的引用,然后递增

(*(it + 1))++;


您正在创建一个指针并将其递增。 取消对迭代器的引用,然后递增

(*(it + 1))++;


你赢得了速度赛。:)还要考虑<代码> ++*(i+1)作品,并且更简洁明了。JordZuncink补充道,Tyin这个例子中的对象只是整数,但是我会记住前/后增量。你赢得了速度竞赛。还要考虑<代码> ++*(i+1)作品,并且更简洁明了。JordZuncink补充道,Tyin这个例子中的对象只是整数,但是我会记住前/后增量。你赢得了速度竞赛。还要考虑<代码> ++*(i+1)作品,并且更简洁明了。JordZuncink补充道,Tyin这个例子中的对象只是整数,但是我会记住前/后增量。你赢得了速度竞赛。还要考虑<代码> ++*(IT + 1)< /C>工作,并且更加简洁明了。JordZuncink补充道,Tyin这种情况下,对象只是整数,但我会记住前/后增量。