STL容器: 方法接口--vector数组

STL容器方法接口

vector数组

1. vector () ;

定义一个空向量

vector<string> fruits;
vector<int> scores;
vector<double> weights;
2. void push_back(const T& x);

在尾部添加元素(x的拷贝)

fruits.push_back("apples");
scores.push_back(99);

平均时间复杂度为常数

最坏时间复杂度为O(n):n次连续的调用

3. iterator insert(iterator position, const T& x);

迭代器位于向量头和尾后的下一个位置之间

将x插入到position所在的位置(x的拷贝放入迭代器位置所在的位置)。调用前,每个下标大于等于该位置的元素依次向后移动。

fruits.insert(itr,"kiwi");
//itr表示迭代器的位置

最坏时间复杂度为O(n)

注:push_back方法是insert的特例

4. void pop_back();

删除尾部的元素

scores: 95 70 80 100 60
scores.pop_back();
//操作后的顺序:
scores: 95 70 80 100
5. void erase(iterator position);

删除position位置的元素(位于迭代器位置上的元素被删除)。调用前,每个下标大于迭代器位置的项依次向前移动。

scores: 95 70 80 100 60
scores.erase(itr); //itr指向100所在的位置
//操作后的顺序:
scores: 95 70 80 60

最坏时间复杂度为O(n)

注:pop_back方法是erase的特例

6. unsigned size() const;

返回vectzor数组中项的数量(长度)

cout<<scores.size();
7. bool empty() const;

如果vector数组不包含任何项就返回true;否则,返回false。

while(!fruits.empty) 
	fruits.pop_back();
8. T& operator[] (unsigned n);

0 <= n < 向量中项的数量

返回对向量的从开头算起第n项的引用

cout<<fruits[1];
//输出fruits数组的第2项
9. iterator begin();

返回位于向量开头的迭代器

10. iterator end();

返回恰好位于向量最后一项之后的迭代器

fruits: "orange" "kiwi" "grapes"
//假设itr = fruits.end();
fruits.insert(itr,"lemons");
//操作后的结果为:
fruits: "orange" "kiwi" "grapes" "lemons"

如果vector数组为空,那么begin()返回的迭代器等于end()返回的迭代器。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值