16.Vector的常见用法详解优化-[STL模板]

16.Vector的常见用法详解优化-[STL模板]

1.vector的定义 —动态


一个元素

vector<typename> name;  //---动态变量
/* 例如
vector<int> a;   
vector<char> b;  
*/

一个数组

vector<typename> a[100];  //---动态数组
//代表a[0] ~ a[100] 间的每一个都是一个vector容器

2.vector元素的访问

下标访问

vector<int> vi;

访问vi[0] , vi[1] 类似数组

迭代器访问

vector<int>::iterator it;  //迭代器的定义  

通过:*it访问元素


迭代器访问实例:

//方法一  通过循环i实现
#include <bits/stdc++.h>
using namespace std;
int main()
{
	vector<int> a;
	for(int i=0;i<5;i++) //输入 
	{
		a.push_back(i);	
	} 
	
	vector<int>::iterator it=a.begin();//令it指向容器a的首地址
	for(int i=0;i<5;i++)
	cout<<*(it+i);	

	return 0;
}


//方法二  通过迭代器自加实现 it++
#include <bits/stdc++.h>
using namespace std;
int main()
{
	vector<int> a;
	for(int i=0;i<5;i++) //输入 
	{
		a.push_back(i);	
	} 
	
	vector<int>::iterator it=a.begin();//令it指向容器a的首地址
	for(it;it!=a.end();it++)
	cout<<*it;
	
	return 0;
}

Tip:
a.begin() 取首地址
a.end()是取末尾的下一个地址
因为美国人思想左闭右开 故a.end()作为迭代器结束标志
超级重要:只有vector和sting容器中 可以使用a.begin+整数这种写法(迭代器访问方法一)


3.vector常用函数

(1)push_back(x)
在vector后面添加一个元素x

(2)pop_back()
删除vector的尾元素

(3)size()
获取vector的元素总数

(4)clear()
清空vector的所有元素

(5)insert(it,x)
在迭代器it的位置插入元素x

(6)erase()
erase(it) 删除迭代器it位置的元素
erase(first,last) 删除[ first,last)间的元素 左闭右开


发布了26 篇原创文章 · 获赞 26 · 访问量 3599

猜你喜欢

转载自blog.csdn.net/xg987599519/article/details/104069433
今日推荐