C++11 向量开始元素上std::vector::erase的时间复杂度

C++11 向量开始元素上std::vector::erase的时间复杂度,c++11,vector,runtime,time-complexity,C++11,Vector,Runtime,Time Complexity,在了解vector.erase的工作原理之后,我不确定std::vector::erase的运行时复杂性是否在向量的第一个元素上。是恒定时间吗?来自(我的重点): 迭代器擦除(常量迭代器位置) 迭代器擦除(先常量迭代器,后常量迭代器) [……] 复杂度:T的析构函数称为等于被擦除元素数的次数,但T的赋值运算符称为等于被擦除元素后向量中元素数的次数 因此,当您擦除第一个元素时,您会得到一个析构函数调用和size()-1赋值,这是线性时间复杂度。根据它的线性。

在了解vector.erase的工作原理之后,我不确定std::vector::erase的运行时复杂性是否在向量的第一个元素上。是恒定时间吗?

来自(我的重点):

迭代器擦除(常量迭代器位置)
迭代器擦除(先常量迭代器,后常量迭代器)

[……]

复杂度:T的析构函数称为等于被擦除元素数的次数,但T的赋值运算符称为等于被擦除元素后向量中元素数的次数

因此,当您擦除第一个元素时,您会得到一个析构函数调用和
size()-1
赋值,这是线性时间复杂度。

根据它的线性。