const std::vector<T> 和 std::vector<T> const 有什么区别?

5

我曾认为声明一个const<vector>的唯一方法是:

const std::vector<T> v; 
1个回答

7

const关键字作用于其左边的内容,除非左边没有内容,则作用于其右边的内容。

因此,const int a=1;int const a=1;是相等的。

const int *bint const *b是相等的(指向常量 int 的指针),但与常量指针 int * const b不同,后者指向非常量 int

这适用于所有数据类型,我选择 int 是因为比 std::vector<T> 更容易输入。


2
const goes to the left”这个说法有歧义,它既可以意味着“const应用于它左侧的任何东西”,正如您所想的那样,但它也可以意味着“const应该写在它应用到的东西的左边”,这是错误的。最好写成“const适用于其左侧的内容”或类似的表述,右侧同理。 - Thomas
5
西方和东方的争斗至今仍在持续…… - Casey
@Thomas 谢谢,applied 是正确的词。当我写答案时,我不想写“thing”,但不知道我还能写什么,它可能是一个指针或类型。 - mch

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接