c++ - 为什么我不能 push_back 到 const 元素的 vector ?

标签 c++ vector constants

<分区>

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/

相关文章:

c++ - 我得到 "void value not ignored as it ought to be"我该怎么办?

objective-c - 在初始化 const 对象时非常迷茫

c++ - 可靠地确保 C++ 14 中的内存安全

c++ - Qt - 计数有色细胞

c++ - 如何配置 Vim 插件 YouCompleteMe 来读取 Makefile?

c++ - 仅针对某些方法的模板特化

c++ - 在基类 vector 中存储抽象派生类对象

c++ - unordered_set 构造歧义

c++ - 是否可以在 C++ 类中声明一个虚拟静态常量值?

javascript - 为什么 `Export Default Const`无效?