<分区>
push_back
按预期工作到非常量元素 vector :
std::vector<int> foo;
int bar = 0;
foo.push_back(bar);
但为什么下面的不可能呢?
std::vector<const int> foo;
const int bar = 0;
foo.push_back(bar);
更准确地说,为什么可以创建 foo
对象但不能对其调用 push_back
?
<分区>
push_back
按预期工作到非常量元素 vector :
std::vector<int> foo;
int bar = 0;
foo.push_back(bar);
但为什么下面的不可能呢?
std::vector<const int> foo;
const int bar = 0;
foo.push_back(bar);
更准确地说,为什么可以创建 foo
对象但不能对其调用 push_back
?
最佳答案
根据 this answer (来自一位 C++11 设计者的评论),std::vector<const T>
标准不允许。
答案表明可以提供一个自定义分配器,该分配器允许带有该分配器的 vector 保存 const 对象。
您最好不要尝试这样做。
关于c++ - 为什么我不能 push_back 到 const 元素的 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28790760/