我在不同的向量迭代器之后为元素分配了向量迭代器,但遇到了一些奇怪的行为。

//This ended up assigning it2 equal to it1
std::vector<int>::iterator it2 = ++it1;
//This worked, assigning it2 to the element after it1
std::vector<int>::iterator it2 = it1++;


我想知道为什么这两个电话的行为不同?我以为它们在功能上是相同的,第一个效率更高。

最佳答案

表达式++it1it1++都递增it1,但是它们具有不同的值。这是分配给it2的值。

++it1的值是it1递增后的值。

it1++的值是it1递增之前的值。

10-04 14:48