STL容器-序列式容器vector

1 容器类型:序列式容器
2、容器的初始化与元素的存放
vector<int> vec;//初始化存放int型的向量vec
2.1 从后面压入元素100
vec.push_back(100);
2.1 从后面弹出元素,并用temp接收
int temp=vec.pop_back();
3、容器的大小和容量
3.1 容器现有元素的数量
vec.size()
3.2 容器可容纳元素的数量
vec.capacity()
3.3 容器可容纳的最大元素的数量
vec.max_size()
3.4 调整容器的大小
vec.resize();
3.5 调整容量
vec.reserve()
4、vector的成员函数
4.1判断向量是否为空
vec.empty();
4.2遍历容器
使用迭代器:
for(vector<int>::iterator it=vec.begin();it!=vec.end();it++)
{
*it
}
使用at()方法:
for(int i=0;i<vec.size();i++)
{
vec.at(i)
}
使用STL算法for_each();
#include<algorithm>
void function(const int& i)
{
...
}
for_each(vec.begin(),vec.end(),function);
5.元素的访问方法
返回元素的引用,可以对元素进行修改:
vec.at(1)或者vec[1];
返回元素的值:
vec.front()返回vector第一个元素的值
vec.back()返回vector最后一个元素的值
6.迭代器相关的函数
正向迭代器:vec.begin()/vec.end();
反向迭代器:vec.rbegin()/ve.rend();
7.元素的查找和搜索
7.1查找某个元素
查找值为1的某个元素
#include<algorithm>
find(vec.begin(),vec.end(),1);
有条件的搜索某个元素
bool function(const int& i)
{
if(i>5)
return true;
}
find_if(vec.begin(),vec.end(),find_if)
8 元素排序
vector不支持可以排序的成员函数,可通过STL的sort()函数进行排序
#include<algorithm>
默认升序:
sort(vec.begin(),vec.end());
用函数定义降序排序
bool function(const int& a,const int& b)
{
if(a>b)
return true;
return false;
}
sort(vec.begin(),vec.end(),function);
9 插入元素
vec.insert(vec.end(),2);//在vec的尾部插入元素2
10 删除元素
10.1 使用成员函数:
删除最后一个元素:vec.pop_back();
删除指定的元素:vec.erase(vec.begin());
删除全部元素:vec.clear()
10.2 使用STL算法库
#include<algrithm>
remove(vec.begin(),vec.end(),10);//移除vec中值等于10的元素
这里要注意的是移除元素后,vec的size是不变的,会将原来的尾部部分在移除后的序列进行补充。
如 vector:1,2,3,10,2,8.
移除10后,变成1,2,3,2,8,8
11.vector<bool>
这里要特别指出的是vector<bool>每个元素所占的空间为1个bit而非4个字节。其操作比普通的vector慢很多,优先使用bitset而不是vector<bool>

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值