本猿昨天将const关键字的常见使用做了介绍,并且针对小白常见混淆的地方做了解释。今天要讲的部分是const的深入部分,有很多的细节。
![f10554803c2f27fa028b619a460471f1.png](https://i-blog.csdnimg.cn/blog_migrate/b333eeda201d578252a92bc6e4796b0f.jpeg)
const与迭代器
STL迭代器以指针为根据塑模,所以迭代器的作用就像一个T*指针,声明迭代器为const相当于声明一个T* const,表示这个迭代器不能指向不同的东西。如果希望迭代器所指的东西不能修改,需要const_iterator。
例子:
std::vector vec;const std::vector::iterator iter = vec.begin();*iter = 10; // 正确,修改迭代器所指的对象iter++; // 错误,迭代器不能修改std::vector::const_iterator citer = vec.begin();*citer = 10; //错误,citer所指对象不能修改citer++; //正确
Bitwise const和Logical const
- Bitwise const,成员函数只有在不更改对象的任何成员变量时才可以说是cons