首頁  >  問答  >  主體

c++ - 容器元素是const元素时的错误

"The C++ Standard forbids containers of const elements "
"because allocator<const T> is ill-formed."

这个ill-formed是什么意思?

PHP中文网PHP中文网2714 天前743

全部回覆(2)我來回復

  • 高洛峰

    高洛峰2017-04-17 13:14:23

    不知道你用的什麼容器,如果是vector的話, 因為vector在添加元素的時候,如果空間不夠會重新分配更多的內存,並且把原來的vector元素拷貝過來給新的vector重新賦值,如果元素型別是const,是不支援重新賦值的。所以編譯器會報錯

    回覆
    0
  • 怪我咯

    怪我咯2017-04-17 13:14:23

    ill是病態的, 壞的, 不良的意思. ill formed就是錯誤的形式.
    const T你new出來怎麼修改.....標準庫容器都不支持const T, 因為沒法修改, 像vector這種還要拷貝你的元素.

    回覆
    0
  • 取消回覆