C++STL练习
2022/4/10 1:49:18
本文主要是介绍C++STL练习,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
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; }
这篇关于C++STL练习的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-06-29易优CMS安装常见问题汇总-icode9专业技术文章分享
- 2024-06-28易优新手必读安装教程-icode9专业技术文章分享
- 2024-06-28忘记eyoucms后台密码怎么办?-icode9专业技术文章分享
- 2024-06-26终极指南:Scrum中如何设置需求优先级
- 2024-06-26AI大模型企业应用实战(25)-为Langchain Agent添加记忆功能
- 2024-06-26小白家庭 nas 搭建方案-icode9专业技术文章分享
- 2024-06-23AI大模型企业应用实战(14)-langchain的Embedding
- 2024-06-23AI大模型企业应用实战(15)-langchain核心组件
- 2024-06-23AI大模型企业应用实战(16)-langchain核心组件
- 2024-06-23AI 大模型企业应用实战(06)-初识LangChain