[ create a new paste ] login | about

Link: http://codepad.org/NH1S1rl6    [ raw code | output | fork ]

C++, pasted on May 17:
#include<iostream>
 
class abc{
int** mass;
int Msize;
public:
        abc(int M,int a,int b){
                Msize=M;
                mass=new int*[Msize];
                mass[0]=new int(a+1);mass[0][0]=a;
                mass[1]=new int(b+1);mass[1][0]=b;
                for(int i=0;i<Msize;i++){
                        for(int ii=1;ii<=mass[i][0];ii++)mass[i][ii]=1;
                }
        }
        ~abc(){
                std::cout << "~abc >>>" << std::endl;
                for(int i=0;i<Msize;i++){
 //               delete/*[]*/ mass[i];
                }
                // delete[] mass;
                std::cout << "~abc <<<" << std::endl;
        }
        void del(int num=0){
                int i,ii;
                GetElem(num,i,ii);
                int j=i,jj=0;
                int* M=new int(mass[i][0]+1);
                for(;jj<=mass[i][0];jj++)M[jj]=mass[j][jj];
                for(int a=1;a<=M[0];a++) std::cout<<M[a];
                delete []mass[i];
                mass[i]=new int(M[0]);
                mass[i][0]=M[0]-1;
                jj=1;
                if(ii<=mass[i][0]){
                        while(jj<ii){mass[i][jj]=M[jj];jj++;}
                        while(jj<=mass[i][0]){mass[i][jj]=M[jj+1];jj++;}
                }
                else while(jj<=mass[i][0])mass[i][jj]=M[jj];
                delete []M;
        }
friend std::ostream &operator <<(std::ostream& I,abc& param){
                for(int i=0;i<param.Msize;i++){
                        for(int ii=1;ii<=param.mass[i][0];ii++){
                                /*if(i==param.Msize-1 && ii==param.mass[param.Msize-1][0]) std::cout<<param.mass[i][ii];
                                else*/ std::cout<<param.mass[i][ii]/*<<","*/;
                        }
                        std::cout<<std::endl;
                }
                
                return I;
        }
private:
        void GetElem(int& num,int& i,int& ii){
                int point=0;
                for(i=0;i<Msize;i++){
                        int size=mass[i][0];
                        for(ii=1;ii<=size;ii++){
                                point++;
                                if(point==num)break;
                        }
                        if(point==num)break;
                        if(i==Msize-1)i=0;
                }
        }
};

int main(){
        abc a(2,3,4);
        std::cout<<a;
        //a.del(5);
        std::cout<<a;
}


Output:
1
2
3
4
5
6
111
1111
111
1111
~abc >>>
~abc <<<


Create a new paste based on this one


Comments: