Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include<bits/stdc++.h>
- using namespace std;
- template<typename T>
- class mass{
- size_t size=0;
- size_t reserve=0;
- T* arr= nullptr;
- void increase(){
- if(reserve==0)++reserve;
- T* ptr=new T[reserve*2];
- for(int i=0;i<size;++i)
- ptr[i]=arr[i];
- delete[] arr;
- arr=ptr;
- reserve*=2;
- }
- public:
- T& operator [](const int &pos){
- return arr[pos];
- }
- size_t get_size() {
- return size;
- }
- size_t get_reserve(){
- return reserve;
- }
- void add_last(const T& a){
- if(size==reserve)
- increase();
- arr[size]=a;
- ++size;
- }
- void delete_last(){
- --size;
- }
- void add(const int& pos,const T& a){
- if(size==reserve)
- increase();
- for(int i=size;i>=pos;--i){
- if(i==pos){
- arr[i]=a;
- continue;
- }
- arr[i]=arr[i-1];
- }
- ++size;
- }
- void _delete(const int& pos){
- for(int i=pos;i<size;++i){
- arr[i]=arr[i+1];
- }
- --size;
- }
- T get(const int& pos){
- return arr[pos];
- }
- void show(){
- for(int i=0;i<size;++i)
- cout<<arr[i]<<' ';
- cout<<'\n';
- }
- T* begin(){
- return arr;
- }
- T* end(){
- return &arr[size];
- }
- ~mass(){
- delete[] arr;
- }
- mass(const mass<T>& m){
- this->arr=new T[m.reserve];
- for(int i=0;i<m.size;++i)
- this->arr[i]=m.arr[i];
- this->size=m.size;
- this->reserve=m.reserve;
- }
- mass<T>& operator =(const mass<T>& m){
- delete[] this->arr;
- this->arr=new T[m.reserve];
- for(int i=0;i<m.size;++i)
- this->arr[i]=m.arr[i];
- this->size=m.size;
- this->reserve=m.reserve;
- return *this;
- }
- mass()= default;
- };
Add Comment
Please, Sign In to add comment