The*_*Zoo 0 c++ containers stl
容器适配器的规范stack说top应该返回一个const引用。为什么?
queue'sfront和也会发生同样的问题back。我可以看到在这种情况下priority_queue,可修改的访问可能会干扰优先级,从而导致“类不变量”,但我不知道为什么您不能修改topastack或front,backa 的原因queue。
为规范最实用的代理是cppreference.com: 顶部
您可以看到它返回 a const_reference,它是const对适应的底层容器所持有的值的引用。
为什么
top在 STL 容器适配器中stack返回const引用?
因为该成员函数是常量限定的,并且容器适配器传播常量性。
有一个非 const 限定的重载返回可变引用。
const 重载存在的原因是您可以访问 const 堆栈的顶部元素。
引用最新标准草案:
[stack.defn]
Run Code Online (Sandbox Code Playgroud)reference top() { return c.back(); } const_reference top() const { return c.back(); }
| 归档时间: |
|
| 查看次数: |
82 次 |
| 最近记录: |