我在不同的向量迭代器之后为元素分配了向量迭代器,但遇到了一些奇怪的行为。
//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++;
我想知道为什么这两个电话的行为不同?我以为它们在功能上是相同的,第一个效率更高。
最佳答案
表达式++it1
和it1++
都递增it1
,但是它们具有不同的值。这是分配给it2
的值。++it1
的值是it1
递增后的值。it1++
的值是it1
递增之前的值。