【发布时间】:2023-03-24 08:37:01
【问题描述】:
例如,我尝试写自己的vector,所以我就这样写它的assign函数
template <typename T>
void Vector<T> :: assign(T *start, T *end)
{
if (end - start > _capacity)
{
resize(end - start);
}
_size = end - start;
delete []ptr;
ptr = new T[_capacity];
memcpy(ptr, start, end - start);
}
我之前有新的指针ptr,但我可以复制指针start和end之间的所有内容
为什么?非常感谢。
【问题讨论】:
-
仅当
T是可简单复制的类型时...(读作:不,坏主意。) -
这不提供强异常保证。