我曾认为声明一个const<vector>
的唯一方法是:
const std::vector<T> v;
我曾认为声明一个const<vector>
的唯一方法是:
const std::vector<T> v;
const
关键字作用于其左边的内容,除非左边没有内容,则作用于其右边的内容。
因此,const int a=1;
和int const a=1;
是相等的。
const int *b
和int const *b
是相等的(指向常量 int
的指针),但与常量指针 int * const b
不同,后者指向非常量 int
。
这适用于所有数据类型,我选择 int
是因为比 std::vector<T>
更容易输入。
const
goes to the left”这个说法有歧义,它既可以意味着“const
应用于它左侧的任何东西”,正如您所想的那样,但它也可以意味着“const
应该写在它应用到的东西的左边”,这是错误的。最好写成“const
适用于其左侧的内容”或类似的表述,右侧同理。 - Thomas