前缀增量运算符错误 C++
Posted
技术标签:
【中文标题】前缀增量运算符错误 C++【英文标题】:Prefix increment operator error C++ 【发布时间】:2016-02-11 00:46:58 【问题描述】:我猜这与优先级有关,但为什么这是合法的
vector<string>::iterator iter = vec.begin();
iter++->empty();
但这不是。
vector<string>::iterator iter = vec.begin();
++iter->empty();
有人能解释一下这里发生的事件链吗?
【问题讨论】:
【参考方案1】:箭头运算符的优先级高于增量,因此++iter->empty()
被解析为++(iter->empty())
,而不是(++iter)->empty()
。后增量版本有效,因为只有一种方法可以解析 iter++->empty()
。
【讨论】:
以上是关于前缀增量运算符错误 C++的主要内容,如果未能解决你的问题,请参考以下文章