C++中vector<int>以及for的几种用法

vector

C++中的一种数据结构,确切的说是一个类.它相当于一个动态的数组,可在不知道所需要的数组大小的情况下使用,极大的节省了空间。
使用前需加上头文件

#include<vector>

变量声明

vector< int > 变量名
vector< int > a;(等于声明了一个int数组a[],大小没有指定,可以动态的向里面添加删除)。
vector< vector< int> >a;(等于声明了一个int类型的二维数组a)

vector自定义

1.vector指定大小

vector<int>a(num);//初始化SIZE大小为num,默认值为0

2.指定大小并赋相同初值

vector<int>a(num,5)//初始化SIZE为num,初始值为5

3.二维vector指定大小

vector<vector<int>>a(num1);//指定行数为num1
for(int i=0;i<a.size();i++)
{  
	a[i].resize(num2);//指定每行的列数,每行的列数可以不同
	//a[i].resize(num2,5);//指定列数并赋初值为5
}

函数及功能实现

定义一个vector< int >c

        c.clear()          移除容器中所有数据。
        c.empty()          判断容器是否为空。
        c.erase(pos)       删除pos位置的数据
        c.erase(beg,end)   删除[beg,end)区间的数据
        c.front()          传回第一个数据。
        c.insert(pos,elem) 在pos位置插入一个elem拷贝
        c.pop_back()       删除最后一个数据。
        c.push_back(elem)  在尾部加入一个数据elem。
        c.resize(num)      重新设置该容器的大小为num
        c.size()           回容器中实际数据的个数。
        c.begin()          返回指向容器第一个元素的迭代器
        c.end()            返回指向容器最后一个元素的迭代器
        c.assign(beg,end):将[beg; end)区间中的数据赋值给c。
        c.assign(n,elem): 将n个elem的拷贝赋值给c。 
        c.at(idx):        传回索引idx所指的数据,如果idx越界,抛出out_of_range。 
        c.back():         传回最后一个数据,不检查这个数据是否存在。
        c.front():        传回地一个数据。 
        get_allocator:    使用构造函数返回一个拷贝。 
        c.rbegin():   传回一个逆向队列的第一个数据。 
        c.rend():         传回一个逆向队列的最后一个数据的下一个位置。 
        c.~ vector < Elem >():销毁所有数据,释放内存。

for的用法

vector<int>a(5,1);//初始化size为5,初始值为1
//第一种用法(用下标)
for(int i=0;i<a.size();i++)
	cout<<a[i]<<endl;
//第二种用法(用迭代器)
for(auto item=a.begin();item!=a.end();item++)
	cout<<item<<endl;
//第三种用法(简化数组遍历语法(从vs2008开始支持))
for each(auto item in a)
	cout<<item<<endl;
//第四组用法(STL函数)
std::for_each(a.begin(),a.end(),[](int item){cout<<item<<endl;})
//第五种用法(C++11新增加的(VS2012支持))
for(auto item:a)
	cout<<item<<endl;
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

SUNKEN-Z

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

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

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

打赏作者

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

抵扣说明:

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

余额充值