#include <iostream>
#define Max 40
using namespace std;
template<typename T>
class sqlist
{
public:
int num;
T *data;
sqlist(){data=new T[40]();num=0;}
~sqlist()
{
delete(data);
}
void insert(T a);
void insert_mid(int start,int len);
void delete_p(int p);
void updata_val(T o,T n );
void search(T a);
void show();
};
template <typename T>
void sqlist<T>::insert(T a)
{
data[num]=a;
num++;
}
template <typename T>
void sqlist<T>::insert_mid(int start,int len)
{
if(len+num>Max)
{
cout<<"插入过长"<<endl;
}
for(int i=1;i<(num-start);i++)
{
data[num+i-1]=data[start+i];
}
cout<<"输入要插入的值"<<endl;
for(int i=1;i<=len;i++)
{
cin>>data[start-1+i];
}
num+=len;
cout<<"插入成功"<<endl;
}
template <typename T>
void sqlist<T>::delete_p(int p)
{
for(int i=0;i<(num-p);i++)
{
data[p-1+i]=data[p+i];
}
num--;
}
template <typename T>
void sqlist<T>::show()
{
for(int i=0;i<num;i++)
{
cout<<data[i]<<' ';
}
cout<<endl;
}
template <typename T>
void sqlist<T>::updata_val(T o,T n)
{
bool flag=0;
for(int i=0;i<num;i++)
{
if(data[i]==o)
{
data[i]=n;
flag=1;
}
}
if(flag==0)
{
cout<<"表中无该值"<<endl;
}
}
template <typename T>
void sqlist<T>::search(T a)
{
for(int i=0;i<num;i++)
{
if(data[i]==a)
{
cout<<i+1<<endl;
}
}
}
int main()
{
sqlist<int> s1;
s1.insert_mid(0,5);
s1.show();
s1.delete_p(3);
s1.show();
s1.search(5);
s1.updata_val(4,100);
s1.show();
return 0;
}