迭代器前置++与后置++返回值的问题
前置++返回引用,后置++返回对象
原因:
避免引用绑定到函数的局部变量
测试代码
#include <vector>
#include <iostream>
int main(){
std::vector<int> vec = {0,1,2,3,4,5};
auto a = vec.begin();
auto&& b = a++;
++b;// 保证b与a指向同一位置
auto& c = ++a;
++b;// 保证b与a指向同一位置
std::cout<<(void*)&b<<std::endl;
std::cout << (void *)&a << std::endl;
std::cout << (void *)&c << std::endl;
system("pause");
return 0;
}