例:int*p=data();合法范围:[data(),data()+size()]vector的元素修改 void push_back(const value_type & value);例:v.push_back(222);时间复杂度:虽然有可能出现时间复杂度O()的扩容操作,但是由于时间均摊给每一步,时间复杂度还是O(1)void pop_back();例:v.pop_back();注意:1.first和last不...
Vector是stl容器中一种常见的容器 ,基本和数组类似,其大小(size)可变,常用于数组长度不确定时来代替数组,当数据超过vector预定值时vector将自动扩容。 Vector是一种顺序存储器,在内存中连续排列,可以通过下标访问,时间复杂度为O(1)。 2 创建和使用 使用时需要包含头文件 1#include<vector> 声明一个int型的vector...
(1)push(x) 将 x 入栈,时间复杂度为 O(1)。 (2)top( ) 获得栈顶元素,时间复杂度为 O(1)。 (3)pop( ) 用以弹出栈顶元素,时间复杂度为 O(1)。 (4)empty( ) 可以检测 stack 内是否为空,返回 true 为空,返回 false 为非空,时间复杂度为 O(1)。 (5)size() 返回 stack 内元素的个数,时...
对于deque由于存储空间是分段连续的,当空间不够的时候重新申请新的一段空间即可,不会涉及到旧元素的移动,其复杂度度为常数O(1)。对于尾部删除,因为不涉及到分配空间申请,因此两者的复杂度均在O(1)。注:vector在尾部插入元素的时,新的size()如果大于capacity(),那么所有的迭代器和引用(包括end()迭代器)...
capacity:获取当前可容纳元素容量(size_type(_M_end_of_storage-begin()))(实际上即为当前容器已分配的内存空间大小); empty:判断容器是否为空(begin()==end());operator[]:返回指定索引下引用元素(*(begin()+n)); at:功能同operator[],其会间接调用operator[],不过增加了边界检查,超过容器容量则抛出range...
());std::cout<<"contains "<<container.size()<<" elements, took "<<std::chrono::duration_cast<std::chrono::microseconds>(durInsertTime).count()<<" us"<<std::endl;for(constauto&i:container){constint*pAddressItemX=&i;intpItemOffset=pAddressItemX-pAddressItemZero;intpItemOffsetOrigin=p...
size函数返回vetor的实际长度(包含的元素个数),empty函数返回一个bool类型,表明vector是否为空。2者的时间复杂度都是O(1)。 clear(): 把vector清空 push_back(x): 把元素x插入到vector的尾部。 迭代器: 迭代器就像STL容器的“指针”,可以用星号“*”操作符访问值。
// 未触发扩容时时间复杂度 O(1). // 触发扩容时时间复杂度为 O(N). ivec.push_back(1); ivec.push_back(2); ivec.push_back(3); ivec.push_back(4); for(intx:ivec) { std::cout<<x<<std::endl; } return0; } // 输出结果 ...
向量大小:vec.size(); 向量最大容量:vec.max_size(); 更改向量大小:vec.resize(); 向量真实大小:vec.capacity(); 向量判空:vec.empty(); 减少向量大小到满足元素所占存储空间的大小:vec.shrink_to_fit(); //shrink_to_fit (2). 修改 多个元素赋值:vec.assign(); //类似于初始化时用数组进行赋值 ...