相关疑难解决方法(0)

当T是基本类型时,std :: vector <T> :: clear()的复杂性是多少?

我理解clear()操作的复杂性在容器的大小上是线性的,因为必须调用析构函数.但原始类型(和POD)呢?似乎最好的做法是将矢量大小设置为0,这样复杂性就是不变的.

如果可以,std :: unordered_map也可以吗?

complexity-theory primitive unordered-map vector clear

14
推荐指数
2
解决办法
3197
查看次数

`std :: vector <primitive> :: clear()`是一个恒定时间操作吗?

调用clear()向量将调用存储在向量中的任何内容的析构函数,这是一个线性时间操作.但是,当向量包含原始类型如intdouble

c++ stl vector clear

11
推荐指数
2
解决办法
539
查看次数

std :: vector <int> :: clear,constant time?

可能重复:
当T是基本类型时,std :: vector <T> :: clear()的复杂性是多少?

如果我有一个std::vector原始类型,并且我调用clear()(这种方式push_back从头开始capacity),clear()调用将在恒定时间或线性时间内完成吗?文档说它会破坏所有元素,但是如果元素是一个int,那么就不应该有任何东西需要破坏,对吧?


编辑:我发现了一个副本,其中有一张海报,详细解释了实现可以检查析构函数是否微不足道,并给出了一个具有该检查(GCC)的编译器的示例.

当T是基本类型时,std :: vector <T> :: clear()的复杂性是多少?

c++ vector primitive-types

7
推荐指数
1
解决办法
1807
查看次数