STL系列之vector(容器)

13 篇文章 1 订阅
2 篇文章 0 订阅

STL系列之vector(容器)

  • 介绍

    • vector中文名容器,是C++标准模板库中的内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库。
    • vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,vector对象可以在运行时高效地添加元素,并且vector中元素是连续存储的。这意味着可以使用常规指针偏移的方式访问元素,使用数组形式访问一样有效。但与数组不同的是,它们的大小可以动态变化,并通过容器自动处理它们的存储。
    • 简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。
  • 头文件
    使用vector,必须包含头文件:

#include<vector>
  • 创建vector对象
vector <int> v;//
vector <int> v(3,1); //初始化放入3个1
vector <int*> vPointer;
vector <ST_USER_DEFINE*> vPointer;//ST_TEST可以是用户定义的任意结构体或类等数据类型
  • 给vector对象赋值
    调用尾部插入push_back,push_back()函数表示将数据添加到vector的尾部,并按需要来分配内存。
int *ponit = new int;
for(int i = 0;i<10;i++)
{
    *ponit = i;
    v.push_back(point);
}
  • 使用下标访问元素,
cout<<v.at(1)<<endl;//推荐
cout<<v[0]<<endl;

记住下标是从0开始的,另外at()进行了边界检查,应该尽量使用at().

  • 遍历vector对象中的元素
    需要定义迭代器变量vector::iterator it,
for (vector<int>::iterator it = v.begin();it != v.end();it++)
{
   cout<<*it<<" ";
}
  • 查找vector中的元素
//查找
it = find(v.begin(),v.end(),7);
cout<<*it;
  • 插入
it = v.begin() + (v.end()-v.begin())/2;
v.insert(it,2,25);
  • 转置(即逆序)
reverse(v.begin(),v.end());

//排序等需要包含算法头文件

#include <algorithm>
  • 排序,按元素的value进行排序
sort(v.begin(),v.end());
  • 删除元素
    vector提供了erase(),pop_back(),clear()来删除元素
v.erase(it+1,it+4);//删除[beg,end)区间的数据,传回下一个数据的位置。
v.clear();//移除容器中所有元素
v.pop_back();//删除最后一个元素
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值