![]() |
1
9
你永远不想在一个向量上向前推。将一个元素添加到前面意味着将向量中的每个其他元素向后移动一个元素:o(n)复制。糟糕的表现。 |
![]() |
2
1
有一个重要的原因:STD::vector & lt & gt;是一个连续的单端数组容器。它分配内存,并在分配的区域开始写入元素。它通常会分配比存储所有当前元素所需的内存更多的内存,因此当您调用push_back()时,它会在末尾写入新元素并增加其元素计数。它快速高效。 另一方面,push_front()需要以某种方式在所有当前元素之前在位置[0]写入新元素,但是这并不容易,因为您的数组位置[0]已经被占用了。push_front()将导致整个数组重新复制,以便可以修改其前面。这是一个低效的操作,STD::向量& lt & gt类未被设计。 当然,你还是可以打电话来
但它会导致整个数组被复制,只是为了添加一个元素。 |
![]() |
llewmills · 根据数字是否为整数过滤数值向量[重复] 2 年前 |
![]() |
Rocket Procd · 在c中向向量插入元素++ 2 年前 |
![]() |
Daniel · 为什么我不能手动定义模板参数? 2 年前 |
![]() |
Swantewit · 将数组值推送到Rust中的向量 2 年前 |
![]() |
Giffyguy · 如何限制在构造向量后调用'resize()'? 2 年前 |
![]() |
clarkk · 当声明向量时,(1)是什么意思? 2 年前 |
![]() |
Loui Augst · 仅在局部X轴上将游戏对象指向另一个对象 2 年前 |
![]() |
F.A. · 从int向量中附加整数的字符串不会打印任何内容 2 年前 |