C++如何影响可变关键字对容器的性能?

ton*_*not 9 c++ mutable

我想知道mutable如何影响容器(map,vector,list,...).另外,我还要记住什么?

Xeo*_*Xeo 10

mutable就像const,只是一个编译时间的事情.它只允许您在常量上下文中修改该变量.在运行时,您是否声明了容器没有区别mutable.

class Foo{
  mutable int i;

public:
  void foo() const{
    // constant context, but you can modify `i`
    i = 5;
  }
};
Run Code Online (Sandbox Code Playgroud)

  • 它也可以用作优化器的提示 (2认同)
  • 它确实会影响优化器的功能. (2认同)
  • @ildjam你是对的,我错误地记录了const通常不能帮助编译器优化的原因.它没有帮助的实际原因在于:http://www.gotw.ca/gotw/081.htm (2认同)