栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

一篇文章帮你玩转vector容器(C++)

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

一篇文章帮你玩转vector容器(C++)

目录
  • 1.vector容器概述
  • 2.vector对象的常用内置函数使用(一部分)
  • 3.vector容器存放内置数据类型
  • 4.vector容器存放自定义数据类型
  • 5.存放自定义类型的数据类型指针
  • 6.vector容器嵌套vector容器

1.vector容器概述

vector容器是一个与数组类似的单元,可以存储若干个值。STL容器是同质的,这样说大家可能听不懂,就是vector容器中存储的值的类型相同
而迭代器能够用来遍历容器的对象

2.vector对象的常用内置函数使用(一部分)
#include

//返回a的第一个元素
a.front();

//返回a的第i元素,当且仅当a存在
a[i];
//清空a中的元素
a.clear();

//判断a是否为空,空则返回true,非空则返回false
a.empty();

//删除a向量的最后一个元素
a.pop_back();

//删除a中第一个(从第0个算起)到第二个元素,也就是说删除的元素从a.begin()+1算起(包括它)一直到a.begin()+3(不包括它)结束
a.erase(a.begin()+1,a.begin()+3);

//尾插法
a.push_back(5);

//在a的第一个元素(从第0个算起)位置插入数值5,
a.insert(a.begin()+1,5);

//在a的第一个元素(从第0个算起)位置插入3个数,其值都为5
a.insert(a.begin()+1,3,5);

//b为数组,在a的第一个元素(从第0个元素算起)的位置插入b的第三个元素到第5个元素(不包括b+6)
a.insert(a.begin()+1,b+3,b+6);

//返回a中元素的个数
a.size();

//返回a在内存中总共可以容纳的元素个数
a.capacity();

//将a的现有元素个数调整至10个,多则删,少则补,其值随机
a.resize(10);

//将a的现有元素个数调整至10个,多则删,少则补,其值为2
a.resize(10,2);

//将a的容量扩充至100,
a.reserve(100);
//b为向量,将a中的元素和b中的元素整体交换
a.swap(b);


3.vector容器存放内置数据类型
#include

using namespace std;

#include

#include//标准STL算法头文件 

//vector容器存放内置数据类型
myprint(int var)
 	{
 		cout< v;
	 
	 //向容器中插入数组
	 v.push_back(15); 
	 
	 v.push_back(24);
	 
	 v.push_back(36);
	 
	 v.push_back(49);
	 
	 //通过迭代器访问容器中的数据
	 vector::iterator itbegin=v.begin();//起始迭代器  指向容器中第一个元素
	 
	  vector::iterator  itend=v.end();//结束迭代器  指向容器中最后一个元素的下一个位置
	  
	  //第一种遍历方式
	  
	 
	   //第2种遍历方式
	   for(vector::iterator out=v.begin();out!=v.end();out++)
	   {
	   	cout<<*out< 

运行结果

4.vector容器存放自定义数据类型
#include

using namespace std;

#include

#include//标准STL算法头文件 

//vector容器存放自定义数据类型
class person
{
public:
	person(string name,int age)
	{
		this->m_name=name;
		
		this->m_age=age;
	}
	string m_name;
	
	int m_age;
 } ;
 void vectorit()
 {
 	vectorv;
 	
 	person p1("zal",18);
 	
 	person p2("fcb",25);
 	
 	person p3("pcd",33);
 	
 	person p4("fdx",49);
 	
 	person p5("xcd",54);
 	
 	//向容器中插入数据
	 v.push_back(p1);
	 
	v.push_back(p2);
	
	v.push_back(p3);
	
	v.push_back(p4);
	
	v.push_back(p5);
	//遍历容器中的数据
	for(vector::iterator out=v.begin();out!=v.end();out++)
	{
		//cout<<"姓名: "<<(*out).m_name<<"年龄: "<<(*out).m_age;
		//or
		cout<<"姓名: "<m_name<<"年龄: "<m_age< 

运行结果

5.存放自定义类型的数据类型指针
#include

using namespace std;

#include

#include//标准STL算法头文件 

//vector容器存放自定义数据类型的指针
class person
{
public:
	person(string name,int age)
	{
		this->m_name=name;
		
		this->m_age=age;
	}
	string m_name;
	
	int m_age;
 } ;
 void vectorit()
 {
 	vectorv;
 	
 	person p1("zal",10);
 	
 	person p2("sdf",20);
 	
 	person p3("vfd",30);
 	
 	person p4("nhg",40);
 	
 	person p5("qrh",50);
 	
 	//向容器中插入数据
	v.push_back(&p1);
	
	v.push_back(&p2);
	
	v.push_back(&p3);
	
	v.push_back(&p4);
	
	v.push_back(&p5);
	//遍历容器中的数据
	for(vector::iterator it=v.begin();it!=v.end();it++)
	{
		
		cout<<"姓名: "<<(*it)->m_name<<"   年龄: "<<(*it)->m_age< 

运行结果

6.vector容器嵌套vector容器
#include

using namespace std;

#include

#include//标准STL算法头文件 

//vector容器嵌套vector容器
 void vectorit()
 {
 	vector > v;
 	//创建小容器 
 	vectorv1; 
 	
 	vectorv2; 
 	
 	vectorv3; 
 	
 	vectorv4; 
 	//向小容器中添加数据
	 for(int i=0;i<4;i++)
	 {
	 	v1.push_back(i+1);
	 	
	 	v2.push_back(i+2);
	 	
	 	v3.push_back(i+3);
	 	
	 	v4.push_back(i+4);
	  } 
	  
	  //将小容器插入大容器中
	v.push_back(v1);
	
	v.push_back(v2);
	
	v.push_back(v3);
	
	v.push_back(v4);
	
	//通过大容器,把所有数据遍历一遍
	for(vector >::iterator it=v.begin();it!=v.end();it++)
	{
		//(*it)----相当于一个容器vector 
		for(vector::iterator vit=(*it).begin();vit!=(*it).end();vit++)
		{
			cout<<*vit<<" ";
		}
		cout< 

运行结果

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/468031.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号