不能push_back向量的const指针

时间:2016-08-26 00:03:04

标签: c++ vector

我想制作一个const指针的矢量。 (指针是常数,而不是A是常数)

这里的代码给出了错误:

class A{};
std::vector<A * const> vec; //creates vector of const pointers to A
A * const a = new A(); //creates a const pointer to new object A

//a vector requires the type of the elements to be copy assignable
//so this gives a me compilation error
vec.push_back(a); 
  

无法使用左值类型初始化'void *'类型的参数   'A * const *'

但是这里的代码编译:

class A{};
std::vector<A * const> vec; //creates vector of const pointers to A

那为什么我可以创建一个非CopyAssignable元素的向量?如果我不能使用它,为什么我能够创建非CopyAssignable元素的向量?有什么方法可以创建和使用const指针的向量吗?

0 个答案:

没有答案