- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我研究了weakly_incrementable
最近的概念,我想知道后增量运算符有什么用,因为该概念没有定义对操作结果的任何要求。
operator++(int)
返回 void
真的可以吗?
void operator++(int) { ++(*this); }
它似乎符合该概念的其他要求(比如它不必是可复制的)并且还符合 incrementable
概念引入的要求使得 i++
很有用,但在那种情况下,我想知道为什么 i++
是由这个概念定义的。毕竟,当你需要一些东西来实现 weakly_incrementable
概念时,你总是可以使用 ++i
而不是 i++
因为
++i
已经提供的属性外,你不能依赖 i++
有任何有用的属性,但是i++
可能效率更低(例如,当它创建迭代器的拷贝时)。最佳答案
该设计决策记录在 P0541 中.
Is it actually okay to return
void
foroperator++(int)
?
是的。这是。如论文中所述,进行了一次特定的民意调查。
也考虑过完全删除后缀增量,但是:
The authors of the Ranges TS strongly prefer keeping the postfixincrement operator for input iterators. Consider the following fairlycommon (anti-)pattern:
for (auto i = v.begin(); i != v.end(); i++) {
// ...
}Aside from concerns over the cost of post-increment, there is nothing wrong with this code per se, and the authors see nocompelling reason to break it. And by permitting
i++
to returnvoid
,we would actually be mitigating the performance problem.
关于c++ - 后递增 weakly_incrementable 的用处?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64854703/
我正在阅读有关 Edit Distance between 2 strings 的问题。 它可以使用编辑距离的公式通过动态规划来解决。我无法理解的是它的用处。首先,这与知道 2 个字符串的最长公共(p
我是一名优秀的程序员,十分优秀!