动态数组:vector

本文介绍了C++中vector容器的基本操作,如定义、拷贝、元素访问和修改,以及lowerbound和upper_bound函数在插入元素时的O(nlogn)复杂度。同时提到vector在解决部分平衡树问题中的局限性。
摘要由CSDN通过智能技术生成

头文件:

#include<vector>

定义:

函数名含义
vector < int > q(n)定义长度为n的数组
vector < double > q/
vector<结构体名>q;/
vector < int > b(a)将a数组拷贝给b数组,前提是a和b都是相同类型的
vector < int > q[5]定义一个行数为5的二维数组
vector < vector < int > >q定义一个行数列数可变化的二维数组
q.front()弹出数组的第一个数据
q.push_back()在最后加上一个数 O(1)
q.pop_back()弹出最后一个数 O(1)
q.size()返回数组大小 O(1)
q.clear()清楚元素个数 O(N)
q.resize(x,y)改变数组大小为n,n个空间数值赋为v,如果没有默认赋值为0
q.insert(x,y)在x的位置插入元素y.O(N)
q.erase(x,y)清除[x,y)的元素
q.begin()返回第一个元素的地址
q.end()返回最后一个元素的后一个位置的地址
q.empty()判断数组是否为空,若为空则返回true,否则返回false

v e c t o r vector vector 有时可以解决部分平衡树的问题,但由于复杂度有时很劣,还是手打吧

q.insert(lowerbound(q.begin(),q.end(),x),x)

在第一个大于等于自己的数的位置上插入,复杂度为 O ( n   l o g n ) O(n \ logn) O(n logn)
注 : u p p e r _ b o u n d upper\_ bound upper_bound 为查找大于自己的数

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值