STL容器--vector全理解

虽然用了好久的STL容器,但有些用法还是需要上网查,干脆就整理一下记住。

vector百度翻译为向量,,在STL中,可以理解成有头有尾的变长数组,即存在begin()函数和end()函数。

目录

头文件:

定义:

vector的常用函数:


头文件:

#include<vector>

定义:

vector<typename> Vector_Name;
//等价于   a[SIZE]
vector<vector<typename>>Vector_Name;
//等价于   a[SIZE][SIZE]
//typename可以是int,double,float,char,还有结构体和STL容器

        我们可以看出来,vector和数组是有很大的相似性的,vector我个人理解为变长的数组,同数组一样我们也可以通过下标来访问。

    vector<int> nums;
	for(int i = 0; i < nums.length(); i++){//length()是元素个数和size()同义
		cout << nums[i];//输出元素值
	} 

vector是可迭代类型,那迭代,迭代器是什么?迭代器(iterator),是一种类似于指针的变量容器。

vector<int> ::iterator it;//it就是这个类型的一个变量
//就得到了一个迭代器it 

我们可以通过*it来访问vector里的内容,所以我个人理解为一种指针。


vector的常用函数:

vector<int> nums;
	for(int i = 0; i < 5; i++){
		cin >> nums[i];
	} 
	nums.push_back(5);//在vector的尾插入一个int类型的值5
	
	nums.pop_back() ;//删除vector尾的最后一个元素
	//pop_back()没有参数
	cout << nums.size() << " " << nums.length();
    //size()是当前vector容器真是占用的大小,即有几个容器
	//元素个数或者是说元素个数
	nums.clear();
	//删除容器中的所有元素,时间复杂度O(N)
	nums.insert(it, x);//在迭代器it处插入x,O(N)
	nums.insert(nums.begin()+1, 3); 
	nums.erase(nums.begin()+2);//删除下标为2处的值
	nums.erase(nums.begin()+1, nums.begin()+3);//删除从下标为1到下标为3的所有值
    //erase和clear不一样,clear没有参数并且全部删除
    nums.resize(10);
    //resize()就是把英文单词翻译一下,重新分配大小,现在nums.length() == 10.前面5个元素值不变,后面的扩充的空间进行初始化

还有一个经常用到的,存储在vector中的数据,利用sort函数进行排序:

vector<int> nums;
	sort(nums.begin(), nums.end());//默认升序排列 

                                                                                                                                                                          

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值