一.初识stl--vector

一.初识stl–vector

stl的作用案例(自动扩容的vector数组):

//不使用stl动态更新数组
int a[n];
int *p=new int[n];
int *temp=new int[m];
memecpy(temp,p,sizeof(int)*n);
delete []p;
p=temp;
//vector使用可自动变长
vector <int> a;
for(int i=0;i<10;i++)
    a.push_back(i);
a.resize(100); //调整数组a大小
a[90]=100;
a.clear(); //删除所有元素,长度归零
a.resize(20,-1)//长度20,存-1
常用stl函数作用参数返回值
vector <int> v定义数组v-数组名-
v.resize(length)调整数组大小length-数组调整大小-
v.resize(length,value)指定数组长度和内容length-数组调整大小 value-数组保存值-
v.clear()删除所有元素--
v.push_back(value)尾部增加一个元素Xvalue-数组保存值-
v.pop_back()尾部删除一个元素--
v.front()返回首元素-首元素值
v.empty()判断是否为空-bool
v.size()返回元素长度-int
v.capacity()返回容器容量-int
v.max_size()返回stl容器允许最大元素数-int
v1.swap(v2)同类容器元素互换v2-与v1容器同类型的容器-

tips:

1.vector扩容是值拷贝形式,地址空间会发生改变。

2.capacity和size的区别,capcity是容器预留空间(包括size),size是元素活动的空间,capacity通常会随着手动扩容而自动扩大,也可以自己控制容量。max_size属性和capacity不同,表示STL容器允许的最大元素数,通常,这个数是一个很大的常整数,可以理解为无穷大。这个数目与平台和实现相关。

难点:

迭代器用法:

迭代器函数作用参数
vector <int>::iterator it定义迭代器-
it=v.begin()迭代器指向首元素-
it=v.end()迭代器指向尾元素-
*it访问迭代器指向内容-
v.erase(it)删除迭代器指向元素it-迭代器
v.erase(it1,it2)删除v中[it1,it2)指向区间内元素it1,it2两个迭代器
v.insert(it,x)向当前迭代器指向前插元素xit-迭代器 x-元素值
v.insert(it,n,x)向当前迭代器指向前插n个元素xit-迭代器 n-数量 x-元素值
v.insert(it,it1,it2)向当前迭代器it前插一段区间值it-当前迭代器 it1,it2-要插入的区间选择迭代器

例子:


int main() {
	vector <int> v;
	for (int i=0;i<10;i++){
		v.push_back(i);
	}
	vector <int>::iterator it;
	it=v.begin();
	v.erase(it);
	for(it=v.begin();it!=v.end();it++){
		cout<<*it <<" ";
	}
	
 	return 0;
}


输出:
1 2 3 4 5 6 7 8 9 

参考博客:

https://blog.csdn.net/u010183728/article/details/81913729
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值