ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

C++STL练习

2022-04-10 00:05:03  阅读:156  来源: 互联网

标签:元素 iterator STL 练习 cin C++ int vector 向量


A - Vector

题目链接:

https://vjudge.net/contest/484569#problem/A

方法:

使用C++中的vector

其中含有的函数及作用:

vector():创建一个空vector
vector(int nSize):创建一个vector,元素个数为nSize
vector(int nSize,const t& t):创建一个vector,元素个数为nSize,且值均为t
vector(const vector&):复制构造函数
vector(begin,end):复制[begin,end)区间内另一个数组的元素到vector中
void push_back(const T& x):向量尾部增加一个元素X
iterator insert(iterator it,const T& x):向量中迭代器指向元素前增加一个元素x
iterator insert(iterator it,int n,const T& x):向量中迭代器指向元素前增加n个相同的元素x
iterator insert(iterator it,const_iterator first,const_iterator last):向量中迭代器指向元素前插入另一个相同类型向量的[first,last)间的数据
iterator erase(iterator it):删除向量中迭代器指向元素
iterator erase(iterator first,iterator last):删除向量中[first,last)中元素
void pop_back():删除向量中最后一个元素
void clear():清空向量中所有元素
reference at(int pos):返回pos位置元素的引用
reference front():返回首元素的引用
reference back():返回尾元素的引用
iterator begin():返回向量头指针,指向第一个元素
iterator end():返回向量尾指针,指向向量最后一个元素的下一个位置
reverse_iterator rbegin():反向迭代器,指向最后一个元素
reverse_iterator rend():反向迭代器,指向第一个元素之前的位置
bool empty() const:判断向量是否为空,若为空,则向量中无元素
int size() const:返回向量中元素的个数
int capacity() const:返回当前向量张红所能容纳的最大元素值
int max_size() const:返回最大可允许的vector元素数量值

题目代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;

vector <int>a;
int flag;
int q;

int main(){
	int p;
	int x;
	cin>>q;
	while(q--){
		cin>>flag;
		if(flag==0){
			cin>>x;
			a.push_back(x);
		}
		else if(flag==1){
			cin>>p;
			cout<<a[p]<<endl;
		}
		else{
			a.pop_back();
		}
		
	}
	
	return 0;
}

B - Deque

题目链接:

https://vjudge.net/contest/484569#problem/B

方法:

使用C++STL中的deque

其中具有的函数及作用:

deq[]:用来访问双向队列中单个的元素。
deq.front():返回第一个元素的引用。
deq.back():返回最后一个元素的引用。
deq.push_front(x):把元素x插入到双向队列的头部。
deq.pop_front():弹出双向队列的第一个元素。
deq.push_back(x):把元素x插入到双向队列的尾部。
deq.pop_back():弹出双向队列的最后一个元素。

代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;

deque<int>a;
int opt;

int main(){
	int q;
	int x;
	cin>>q;
	while(q--){
		cin>>opt;
		if(opt==0){
			int d;
			int x;
			cin>>d>>x;
			if(d==0){
				a.push_front(x);
			}
			else a.push_back(x);
		}
		if(opt==1){
			int p;
			cin>>p;
			cout<<a[p]<<endl;
		}
		if(opt==2){
			int d;
			cin>>d;
			if(d==0){
				a.pop_front();
			}
			else a.pop_back();
		}
	}
	
	return 0;
}

D - Vector II

题目链接:

https://vjudge.net/contest/484569#problem/D

方法:

和A题一样使用STL中的vector,需要注意输出时的方法

代码:

点击查看代码
#include<bits/stdc++.h>
using namespace std;

int main(){
	vector<int> a;
	int flag;
	int q;
	int n;
	int t;
	int x;
	cin>>n>>q;
	while(q--){
		cin>>flag;
		if(flag==0){
			cin>>t>>x;
			a.push_back(t,x);
		}
		if(flag==1){
			cin>>t;
			a.dump(t);
		}
		if(flag==2){
			cin>>t;
			a.clear(t);
		}
	}
	
	
	return 0;
}

标签:元素,iterator,STL,练习,cin,C++,int,vector,向量
来源: https://www.cnblogs.com/qjc0714/p/16124323.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有