列表push_back期间的C ++ postfix增量

时间:2012-09-16 17:57:52

标签: c++ iterator dereference push-back postfix-operator

我有一个代码flush[*it % 4].push_back(*(it++) /= 4);,它意味着在递增it迭代器之前push_back新值(旧值/ 4),它是这样的,或者如何以最快的方式从中获取值迭代器,除以4,存储它,在push_back中使用新值然后增加迭代器?

1 个答案:

答案 0 :(得分:5)

那太讨厌了。 it之前或之后*it % 4会增加吗? Protip:它没有定义,所以你的代码没有明确定义的结果。这真是太糟了。此外,它通常是一个混乱 - 你已经对一个变量进行了两次读取和写入,一个赋值,一个函数调用,一个索引。这对于一个表达来说非常重要。

使用多个语句来实现您的逻辑。