性能:push_back()操作的时间复杂度为O(1),即它的执行时间与向量的大小无关。这是因为std::vector在内部实现时,预留了一些额外的空间,以便在添加新元素时不需要频繁地重新分配内存。 自动扩容:当std::vector的容量不足以容纳新元素时,它会自动分配更大的内存空间,并将现有元素复制到新的内存位置。这种扩容...
#include<cstdlib>#include<vector>#include<chrono>intmain(){autoroll=[](){return(std::rand()%10)+1;};std::vector<int>container;container.push_back(roll());constint*pAddressOrignItemZero=&(*container.begin());std::chrono::duration<double>durInsertTime(0);for(inti=0;i<10;i++){consti...
v1.push_back(30); v1.push_back(40); v1.push_back(50); printVector(v1); // 尾删 v1.pop_back(); printVector(v1); // 插入 第一个参数是迭代器 v1.insert(v1.begin(), 100); printVector(v1); v1.insert(v1.begin(), 2, 1000); printVector(v1); //删除 v1.erase(v1.b...
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...
pop_back(x)就是删除vector的尾元素x,时间复杂度为O(1)。 1.3.3、size()函数 用来获得vector中元素的个数,时间复杂度为O(1)。 1.3.4、clear()函数 用来清空vector所有的元素,时间复杂度为O(N),N为元素总个数。 1.3.5、insert()函数 用insert(it,x)往vector的任意迭代器it初传入一个元素x。时间复杂...
(2)pop_back() pop_back() 删除vector尾元素,时间复杂度O(1) #include<iostream> #include<vector> usingnamespacestd; intmain(){ vector<int>vi; for(inti=1;i<=5;i++){ vi.push_back(i); } vi.pop_back();//删除尾元素 for(inti=0;i<vi.size();i++){ ...
(2)pop_back() pop_back()用来删除vector的尾元素,时间复杂度为O(1)。 1 #include 2 #include 3 using namespace std; 4 vector<int> vi; 5 int main() 6 { 7 for(int i=0;i<5;i++){ 8 vi.push_back(i); //将i的值依次插入到vi的尾部 9 }10 vi.pop_back(); //删除尾元素 11 ...
void push_back(const value_type & value);例:v.push_back(222);时间复杂度:虽然有可能出现时间复杂度O()的扩容操作,但是由于时间均摊给每一步,时间复杂度还是O(1)void pop_back();例:v.pop_back();注意:1.first和last不能是对象自身的迭代器,否则是未定义行为 2. 如果新的 size()大于旧的 ...
时间复杂度:单次删除操作(如 erase 或pop_back)的时间复杂度通常为 O(n),其中 n 是 std::vector 中剩余元素的数量。这是因为删除操作可能需要移动剩余元素以填补被删除元素的位置。 内存分配:如果删除操作导致 std::vector 的大小减少到其容量的一半以下,某些实现可能会触发内存重新分配以减小容量,这会增加额外...