for(coniter=con.begin();coniter!=con.end();++coniter++)没有报错?

for(conitercon.begin()coniter!con.end()++coniter++)没报错?!通常情况下C/C++ codeint var2++var+

for(coniter=con.begin();coniter!=con.end();++coniter++)没报错?!
通常情况下

C/C++ code
int var=2;++var++;

这种形式的代码是会报错:"++ needs l-value."

但!
C/C++ code
    vector<int> con(10,20);    vector<int>::iterator coniter;    coniter=con.begin();    ++coniter++;    for(coniter=con.begin();coniter!=con.end();++coniter++)    {        *coniter=(*coniter)*2;    }

却可以通过编译。单步查看,发现只执行一次++操作,不知道为什么

[解决办法]
你可以看看vector的iterator的后置++做了什么,vs2008的stl中,这个vector的iterator的后置++返回一个对象,这个对象是原iterator的一个拷贝,语法没错误,而且对原iterator没有影响。
内置类型就不同了。。