首页 > 解决方案 > 算法中的 std::move 会破坏重叠的对象吗?

问题描述

算法库中的std::move函数

取自cppreference.com

template< class InputIt, class OutputIt >
constexpr OutputIt move( InputIt first, InputIt last, OutputIt d_first );

如果我在同一个数组中移动,重叠的元素将被破坏

另外,如果我像这样调用构造2 次(使用allocator_traits):

alloc_trait::construct(alloc, p, 1);
alloc_trait::construct(alloc, p, 2);

旧元素会被破坏吗?还是我必须手动销毁它?

Destroy = 调用析构函数不释放

标签: c++

解决方案


推荐阅读