移出向量总是空吗?
问题:
已知标准库类型的对象可以从中移出,而移动操作可能会将移出的对象保留在未指定的位置状态,没有明确的要求将向量排除在外。但是,移出向量怎么可能处于非空状态呢?
答案:
一般来说,移出向量将为空,但情况并非总是如此。
具体案例:
移出向量的行为取决于所使用的操作(移动构造函数或移动赋值)以及与向量关联的分配器。
移动构造函数:
向量(向量&& v)
在这种情况下,移出向量将始终为空。移动操作需要恒定的复杂性,需要将所有权从一个向量转移到另一个向量,使前一个向量为空。
移动赋值:
vector& 运算符=(vector&& v)
共有三种情况考虑:
应该注意的是,某些实现可能会选择显式清除此中的移出向量场景,但这不是必需的。
以上是移出向量何时不为空?的详细内容。更多信息请关注PHP中文网其他相关文章!