首页 > 解决方案 > iter++->empty() 和 ++iter->empty() 有什么区别?

问题描述

假设 iter 是一个vector<string>::iterator.

  1. 我知道这++iter->empty()是非法的,ISO C++17 不允许增加 bool 类型的表达式,表示等++iter->empty()​​于++(iter->empty()).
  2. 基于(1),为什么iter++->empty()不等于(iter->empty())++or ((*iter).empty())++,而是等于(*iter++).empty()?非常感谢!

标签: c++c++11c++17

解决方案


推荐阅读