栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

自学笔记,c++容器-----孔书豪

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

自学笔记,c++容器-----孔书豪

文章目录

vector定义方法

vector常用函数

vector的应用

vector定义方法

vector定义方法

 vectorname;

以上定义相当于定义了一个一维数组,只是大小不确定,其长度可以
根据需要而变化

vector的访问

访问vector的元素一般有两种方式。
第一种方式是通过”迭代器“来访问。可以将迭代器(iterator)理解为
一种类似指针的变量,其定义为:

vector::iterator it;

现在,我们已经定义了一个正向迭代器了,我们可以通过”*it“来访问int类型的vector里面的元素,例如:

vector::iterator it=v.begin();//v.begin为取v的首元素地址,而it指向这个地址,相当于v[0].v[i]和*(v.begin()+i)是等价的
for(int i=0;i<=5;i++)printf("%d",*(it+i));//输出v[i]

在常用的STL容器中,只有vector和string允许使用”v.begin()+3"这种迭代器加上整数的写法。同时,迭代器也可以进行自加、自减操作,即it++,++it,it–,--it。例如:

for(vector::iterator it = v.begin();it!=v.end();it++)
	printf("%d",*it);//输出v[i]

需要注意的是:v.end()并不是取v的尾元素地址,而是尾元素地址的下一个地址,作为迭代器末尾标志不存储任何元素

vector常用函数

前面已经介绍了两个vector函数:begin()和end()。下面介绍几个常用的vector函数。

(1) push_back()//push_back(x)用来在vector后面添加一个元素x
(2) pop_back()//pop_back()用来删除vector的尾元素
(3) clear()//用来清空vector里面的所有元素
(4) insert()//insert(it,x)用来向vector任意迭代器it处插入一个元素x
(5) size()//如果是一维数组,size()用来获得vector中的元素个数;如果是二维数组,size()用来获得vector中第2维的元素个数,同时也可以用resize(n)重设数组大小
(6)erase()//erase()用来删除vector中的元素,有两种做法.一种是erase(it),删除迭代器it处的元素;另一种是erase(first,last),删除左闭右开区间[first,last]内的所有元素。

vector的应用

例一 中间数

[问题描述] 依次读入若干正整数,如果是奇数个就输出最中间那个数;
否则,输出中间两个数的和。以0作为结束标志,但0不计数

代码:

#include
using namespace std;
int main(){
	vectora;
	int t,i=0;
	do{
		scanf("%d",&t);
		a.push_back(t);//不断读入数,添加到容器a的末尾
	}while(!=0);
	a.pop_back();//读到0结束,删除末尾的0
	if(a.size()%2==1)printf("%dn",a[a.size()/2]);
	else printf("%dn",a[(a.size()-1)/2+a[a.size()/2];
	return 0;
}
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702165.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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