性能:push_back()操作的时间复杂度为O(1),即它的执行时间与向量的大小无关。这是因为std::vector在内部实现时,预留了一些额外的空间,以便在添加新元素时不需要频繁地重新分配内存。 自动扩容:当std::vector的容量不足以容纳新元素时,它会自动分配更大的内存空间,并将现有元素复制到新的内存位置。这种扩容机制可...
访问元素的时间复杂度为O(1),因此vector是一种高效的动态数组。 vector管理的内存是连续的,因此可以使用指针直接访问元素。 vector会根据需要动态增加内存,并且内存空间通常是连续的,因此push_back操作的时间复杂度为O(1)。 需要注意的是: 当vector需要增加内存时,可能会发生内存重新分配,因此指向vector内部元素的指针...
1|2顾名思义,push_back(x)就是在vector后面添加一个元素x。 1|32.pop_back()有添加就有删除,pop_back()用于删除vector的尾元素,时间复杂度为O(1)。 1|43.size() 1|5size()用来获取vector中元素的个数,时间复杂度为O(1)。size()返回的是unsignedl类型,不过一般来说用%d不会出现很大的问题,这一点...
pop_back()用来删除vector的尾元素,时间复杂度为O(1)。 1#include <iostream>2#include <vector>3usingnamespacestd;4vector<int>vi;5intmain()6{7for(inti=0;i<5;i++){8vi.push_back(i);//将i的值依次插入到vi的尾部9}10vi.pop_back();//删除尾元素11for(inti=0;i<vi.size();i++){12c...
下面几个表是vector所涉及到操作的具体时间复杂度,包括构造、访问、修改, Constructors Accessors 因为vector的内存是连续的,因此访问元素非常快捷,都是O(1)。 Modifiers 在操作vector时,从尾部插入是最快的,都是O(1),但是从中间插入或者删除涉及到元素的移动,所以时间复杂度为O(n)。
vi.pop_back();//删除尾元素 for(inti=0;i<vi.size();i++){ cout<<vi[i]<<" "; } cout<<endl; return0; } 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. (3)size() 获得vector中元素个数,时间复杂度O(1) 类型unsigned %d输出也没问题 ...
cout << g_vec[0] << endl; //时间复杂度 1 g_vec.pop_back(); //删除 cout << g_vec.size() << endl; g_vec.push_back(12); g_vec.push_back(23); //插入 vector <int>::iterator theIterator = g_vec.begin(); g_vec.insert(theIterator,1,33); ...
🌉pop_back 🌉 find 🌉 insert 🌉 erase 🚩总结 📝前言 本节我们将学习vector容器的使用和操作,让我们学习起来吧! 库函数网址查询:https://legacy.cplusplus.com/reference/vector/vector/?kw=vector 🌠 熟悉vector 在这里插入图片描述 C++ 标准库中的std::vector是一个动态数组容器,能够存储并管理元素...
时间复杂度:单次删除操作(如 erase 或pop_back)的时间复杂度通常为 O(n),其中 n 是 std::vector 中剩余元素的数量。这是因为删除操作可能需要移动剩余元素以填补被删除元素的位置。 内存分配:如果删除操作导致 std::vector 的大小减少到其容量的一半以下,某些实现可能会触发内存重新分配以减小容量,这会增加额外...