Description
Please define a linear table. You can insert an element before a location, delete the element in a location, clear all elements, and get the element in a location. You can do this by typing some commands on the keyboard. In this problem, the element of linear table is integer, and the first element position of linear table is 1. The maximum length of a linear table is 1000.
Input
The format of each command and related data is as follows:
Insert before a location: insert, next row is the number of inserted groups n, next row is the data of N rows, each row has two values, respectively representing the location and the inserted element value
Clear linear table: clear
Get the element of a location: getelem, the next line is the element location to get
Delete the element in a certain location: delete, and the next line is the location of the deleted element
When the command entered is exit, the program ends
Output
When the input command is getelem, please output the obtained element value,
When the entered command is delete, please output the element value to be deleted
Note that all elements take up one row
Sample input
insert
2
1 1
2 2
delete
1
clear
insert
2
1 3
2 4
getelem
2
exit
Sample output
1
4
#include<vector> #include<iostream> #include<cstring> using namespace std; int main() { vector<int>v; vector<int>::iterator it; char a[15]; int i,p,x,n,s; //s Count as while(scanf("%s",a)!=EOF) { s=1; //Because vector Count from 0, and we usually count elements from 1 if(strcmp(a,"insert")==0) { scanf("%d",&n); for(i=1;i<=n;i++) { cin>>p>>x; //p Location No. p One, x It is the first. p Values of elements v.insert(v.begin()+p-1,x); //Because vector Count from 0, so insert the p Location of elements requires-1 } } else if(strcmp(a,"clear")==0) { v.clear(); } else if(strcmp(a,"exit")==0) break; else if(strcmp(a,"getelem")==0) { cin>>n; for(it=v.begin();it!=v.end();it++,s++) if(s==n) { cout<<*it<<endl; break; } } else if(strcmp(a,"delete")==0) { cin>>n; for(it=v.begin();it!=v.end();s++) if(s==n) //The first n Element { cout<<*it<<endl; it=v.erase(it); //Delete element, return value points to the next location of the deleted element break; } else it++; //Point to next position } } }