1.初始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) 尾部增加一个元素X value-数组保存值 -
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) 向当前迭代器指向前插元素x it-迭代器 x-元素值
v.insert(it,n,x) 向当前迭代器指向前插n个元素x it-迭代器 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

posted @ 2021-07-21 22:51  秋月桐  阅读(33)  评论(0编辑  收藏  举报