【c++STL——第一讲】vector系列 (常用知识点总结)

ฅ(๑˙o˙๑)ฅ 大家好, 欢迎大家光临我的博客:面向阿尼亚学习
算法学习笔记系列持续更新中~

阿



一、前言

在 C++ 中,要使用STL中的vector,需要先调用头文件#include < vector >
vector 是一个十分有用的容器。它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据。

vector(变长数组),倍增的思想,支持比较运算(按字典序)


二、vector的定义

​    vector <int> a; 定义:一个vector数组a

​    vector <int> a(10); 定义:一个长度为10的vector数组a

​    vector <int> a(10,3); 定义:一个长度为10的vector数组a,并且所有元素都为3

三、vector的常用函数

    size(); 返回元素个数

​    empty(); 判断a是否为空,空则返回true,非空则返回falseclear(); 清空

​    front(); 返回vector的第一个数

​    back(); 返回vector的最后一个数

​    push_back(); 向vector的最后插入一个数

​    pop_back(); 把vector的最后一个数删掉

​    begin(); vector的第0个数

​    end(); vector的最后一个的数的后面一个数

  倍增的思想:

​    系统为某一程序分配空间是,所需时间,与空间大小无关,与申请次数有关

代码样例

#include<iostream>
#include<vector>
using namespace std;
int main () {
	vector<int> v;//定义一个vector v

	for(int i=0; i<5; i++) {
		v.push_back(i);
	}
	//返回元素个数
	cout<<v.size()<<endl;
	//返回vector的第一个数
	cout<<v.front()<<endl;
	//返回vector的最后一个数
	cout<<v.back()<<endl;

	for(auto x : v) {//遍历输出
		cout << x << " ";
	}
	cout<<endl;
	//清除所有元素
	v.clear();
	cout<<v.size()<<endl;
	return 0;
}

输出结果
5
0
4
0 1 2 3 4
0


结合算法erase() reverse()
#include< algorithm>

   a.erase(p)//从a中删除迭代器p指定的元素,p必须指向c中的一个真实元素,不能是最后一个元素end()
   
   a.erase(b,e)//从a中删除迭代器对b和e所表示的范围中的元素,返回e

   vector<int> a={1,2,3,4,5};
   
   reverse(a.begin(),a.end());//a的值为5,4,3,2,1  倒置

四、vector的遍历方法


​    假设有个vector <int> a;

​    第一种:

​      for(int i = 0;i < a .size();i ++) 
         cout<<a[i]<<" ";

​    第二种:

​      for(vector <int>::iterator i = a. begin();i != a. end();i ++)
        cout<<*i<<" "; vector <int>::iterator可以写为auto

​    第三种:

​      for(auto x : a) cout<<x<<" ";//C++11的新语法

最后

莫言真理无穷尽,寸进自有寸进欢请添加图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

quicklysleep

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值