Problem : STL——灵活的线性表
来源:互联网 发布:excel两张表格数据对比 编辑:程序博客网 时间:2024/06/05 19:06
话不多说,先上题目为敬~
Problem E: STL——灵活的线性表
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 5192 Solved: 2169
[Submit][Status][Web Board]
Description
数组和链表是我们熟知的两种线性结构,但是它们不够灵活(不能同时实现直接插入、删除和访问操作),给你若干种操作,你能通过一种灵活的容器,实现它们的功能吗?
操作1:Build a b (产生一个大小为a的线性表,其值全部赋为b,每组样例仅出现一次,在起始行)
操作2:Modify a b (将线性表的第a个元素的值设为b)
操作3:Insert a b c (在线性表的第a个位置插入第b到第c个位置的所有元素)
操作4:Erase a b(删除线性表第a到第b个位置的所有元素)
操作5:Print a b (输出线性表的第a到第b个元素)
程序在执行操作5的时候要输出结果,格式如“[1]:3 [2]:4 [3]:5”([]内为线性表的位置,“:”后面为元素的值,不带引号,每组输出占一行)
Input
输入有多行,对应5个操作,以EOF结束
Output
见Sample
Sample Input
Build 10 1Modify 2 2Insert 3 1 2Modify 6 4Erase 3 5Print 1 8
Sample Output
[1]:1 [2]:2 [3]:4 [4]:1 [5]:1 [6]:1 [7]:1 [8]:1
HINT
使用vector可以很容易解决
Append Code
使用STL中的vector可以很容易的解决这个问题。
答案如下
#include <iostream>using namespace std;#include <vector>int main(){ string str; vector<int> v; int m,n,o; while(cin>>str) { //cin>>str; if(str == "Build") { cin>>m>>n; v.assign(m,n); } else if(str == "Modify") { cin>>m>>n; v[m - 1] = n; } else if(str == "Insert") { cin>>m>>n>>o; v.insert(v.begin()+m- 1,v.begin() + n - 1,v.begin() + o ); } else if(str == "Erase") { cin>>m>>n; v.erase(v.begin() + m -1,v.begin() + n); } else if(str == "Print") { cin>>m>>n; for(int c = m - 1;c < n;c++) { if(c != n - 1) cout<<"["<<c + 1<<"]"<<":"<<v[c]<<" "; if(c == n - 1) cout<<"["<<c + 1<<"]"<<":"<<v[c]; } cout<<endl; } }}
0 0
- Problem E: STL——灵活的线性表
- Problem E: STL——灵活的线性表
- Problem : STL——灵活的线性表
- Problem A: STL——灵活的线性表
- Problem : STL——Jerry的问题
- STL有限队列的灵活运用+IO优化+区间最大最小——POJ Sliding Window
- Problem : STL——字典
- Problem : STL——水果店
- 数据结构—Problem E: 链表的基本运算(线性表)
- 数据结构—Problem B: 删除区间内的元素(线性表)
- Problem D: 线性表的基本操作
- Problem D: 线性表的基本操作
- Problem H: 线性表的基本操作
- 数据结构—Problem B: 子序列问题(线性表)
- Problem G: STL——Jerry的问题
- Problem G: STL——Jerry的问题
- Problem C: STL——Jerry的问题
- 线性表—线性表的合并
- eclipse下svn常见问题
- beanstalkd消息队列在生产环境的应用
- Android进程保活的一般套路
- 基于潘文明至简设计法实现的PWM调制verilog
- MySQL数据库TDSQL架构分析及采用策略扩容流程
- Problem : STL——灵活的线性表
- 安卓权限
- Keli 编译遇到 > *** FATAL ERROR L250: CODE SIZE LIMIT IN RESTRICTED VERSION EXCEEDED
- C++析构函数为什么要为虚函数
- Chaikin A/D Oscillator 收集派发摆荡指标
- Detection:faster rcnn
- 性能指标之资源指标 如何判断物理内存是否够用
- 1616
- 什么是URL?