另一个问题的答案
解释了为什么我们(据说)不能拥有const对象的容器.例如,这是不允许的:
vector<const int> v; //not allowed
Run Code Online (Sandbox Code Playgroud)
但为什么pair允许第一个对象const呢?实际上,这是对象pair内部的s 所发生的事情map.我错过了什么吗?
将非常感谢对这种现象的详细和直观的解释.
pra*_*ber 15
我认为主要原因是因为std::pair不重新分配对象,所以它们不必是可分配的.
更新:
实际上,vector是唯一需要可分配对象的容器.这是因为相应的标准向量必须具有其元素的连续存储位置.因此,如果没有空间可以添加更多对象,则向量必须将其数据重新分配到另一个位置(因此使用对象的assignable属性).
| 归档时间: |
|
| 查看次数: |
4083 次 |
| 最近记录: |