本文共 453 字,大约阅读时间需要 1 分钟。
之前有篇博文叫
提到最好不要使用后置版本。但是也有使用它比较方便的时候
如:
输出vector对象的内容直到遇到(但不包括)第一个负数为止:
auto pbeg =v.begin();
//输出元素直到遇到第一个负值为止
while(pbeg!=v.end()&& *beg>=0)
cout<<*pbeg++<<endl;//输出当前值并移向下一个元素
后置运算符的优先级高于解引用运算符,因此*pbeg++等价于*(pbeg++)。先加一,然后返回 pbeg的初始值的副本作为其求值结果。最终这条语句输出pbeg开始指向的那个元素 ,并将指针移动一个位置。
形如*pbeg++的表达式可能一开始不太容易理解,但其实这是一种广泛使用的写法。
书写
cout<<*iter++<<endl;
要比书写下面的等价语句更简洁、也更少出错
cout<<*iter<<endl;
++iter;
大多数C++程序追求简洁,摒弃冗长,因此C++程序员应该习惯于这种写法。一旦掌握了这种写法,程序出错的可能性也会降低。
转载地址:http://frhfn.baihongyu.com/