作为来自here的后续问题,我想知道是否有办法逃避std :: deque :: erase的MoveAssignable。实际上我有很多互连的类,有很多const类型和引用,远离MoveAssignable。我需要对它们进行容器处理,但是如果不能使用擦除,这将变得毫无意义。有什么想法吗?
答案 0 :(得分:4)
std::deque
的工作方式要求使其内容可重定位(否则,它不需要MoveAssignable
概念)。这意味着你不能使用不可移动类型的双端队列(或者一个向量)。但是你可以使用一个不会移动其元素的容器,比如std::list
或关联容器。