小明的数组
大家好,欢迎来到STL系列课堂,我是隔壁老王,时刻准备更新博客
题目描述:
小明很开心地发现了一个功能强大的从零开始的数组,这个数组能实现以下功能:
1.插入一个元素到某个位置
2.删除一个指定位置的元素
3.询问数组中的第几个元素是什么
4.询问数组的长度
5.加入一个元素在数组的最后位置。
请你也写出一个代码实现以上功能
输入:
第一行一个整数n(n≤100000)表示操作的个数。接下来n行每一行表示一个操作,每一行首先有一个整数k表示要实现第几个功能。当k=1时接下来有两个整数x,y表示把y这个元素插到x位置上。当k=2时接下来有一个整数x,表示删除x位置的元素。当k=3时接下来有一个整数x表示询问位置x上的元素是什么。当k=4时接下来不存在整数,表示询问数组的长度。当k=5时接下来存在一个整数x表示把x加入数组的最后。
输出:
若干行,每一行表示一个询问的答案。
样例输入:
10
5 1
5 2
3 1
4
1 1 3
2 2
4
3 1
5 3
4`
样例输出:
2
2
2
3
3
题目出处:https://jsswoj.com/oj/#main/show/1418
这道题如果是接触过STL的人都明白,这道题使用vector容器解决,用普通的数组是会超时的。下面就给大家带来一些vector的成员函数:
vector<int> a;//定义vector数据类型为int的a
a.begin();//返回a头元素的迭代器(简单的可以理解为指针)
a.end();//返回a尾元素再后一位的迭代器(不可以直接解引用)
a.push_back(x); //将x插入a的尾部
a.insert(a.begin()+n,x)//在第n个位置插入x
a.erase(a.begin()+n)//删除在n的元素
a.size()//返回a的元素个数
a.at(x)//返回在x位置的元素,作下标检查
a[x]//返回在x位置的元素,不作下标检查
还要记得包含头文件vector噢!
希望这些成员函数可以帮助大家!!!
如果有什么问题,可以在下方评论噢!!!
下期:小明学单词 STL之map