Форум программистов, компьютерный форум CyberForum.ru

Deque тест на работу - C++

Восстановить пароль Регистрация
 
Elnur94
0 / 0 / 0
Регистрация: 01.12.2012
Сообщений: 19
27.04.2014, 21:27     Deque тест на работу #1
нужно сделать тест на работу конструктора копирования, выяснить происходит ли утечка памяти. Можете помочь, как то не получается сделать тест)

#include<iostream>
using namespace std;

class deck
{
int mas_len,l,r,len;
int* mas;
public:
//Љ®*бвагЄв®ал
deck(int a=7)
{
cout<<"ђ*Ў®в*Ґв Є®*бвагЄв®а"<<endl;
if(a<=0) a=10;
mas=new int[a];
mas_len=a;
len=0;
l=a/2; r=a/2+1;
if(r==mas_len) r=0;
}
deck(const deck &a)
{
cout<<"ђ*Ў®в*Ґв Є®*бвагЄв®а Є®ЇЁа®ў**Ёп"<<endl;
int i;
len=a.len; mas_len=a.mas_len; l=a.l; r=a.r;
mas=new int[mas_len];
for(i=0;i<mas_len;i++) mas[i]=a.mas[i];
}
//„ҐбвагЄв®а
~deck()
{
cout<<"ђ*Ў®в*Ґв ¤ҐбвагЄв®а"<<endl;
delete mas;
len=mas_len=l=r=0;
}
//Ћб*®ў*лҐ ¬Ґв®¤л
int put(int num,int ind=0)
{
if(len<mas_len)
{
if(ind==0) //Љ«*¤Ґ¬ б«Ґў*
{
mas[l]=num;
l--; if(l==-1) l=mas_len-1;
}
else //Љ«*¤Ґ¬ бЇа*ў*
{
mas[r]=num;
r++; if(r==mas_len) r=0;
}
len++;
return 0;
}
else return -1;
}
int take(int* num,int ind=1)
{
if(len>0)
{
if(ind==0) //ЃҐаҐ¬ б«Ґў*
{
l++; if(l==mas_len) l=0;
*num=mas[l];
}
else //ЃҐаҐ¬ бЇа*ў*
{
r--; if(r==-1) r=mas_len-1;
*num=mas[r];
}
len--;
show();
return 0;
}
else return -1;
}
void show()
{
int i,j=0;
if(len==0) cout<<"„ҐЄ Їгбв!"<<endl<<"=================================================="<<endl;
else
{
cout<<"„ҐЄ("<<len<<"):"<<endl;
for(i=l;j<len;j++)
{
i++; if(i==mas_len) i=0;
cout<<mas[i]<<" ";

}
cout<<endl<<"=================================================="<<endl;
}
}
void clear()
{
l=r=mas_len/2;
len=0;
}
//ЏҐаҐЈаг§Є* ®ЇҐа*в®а®ў
deck operator =(deck a)
{
cout<<"ђ*Ў®в*Ґв ЇҐаҐЈа㦥**л© ®ЇҐа*в®а ЇаЁбў*Ёў**Ёп"<<endl;
int i;
delete mas; mas=new int[a.mas_len]; mas_len=a.mas_len;
len=a.len; l=a.l; r=a.r;
for(i=0;i<mas_len;i++) mas[i]=a.mas[i];
return *this;
}
deck operator +(deck &a)
{
cout<<"ђ*Ў®в*Ґв ЇҐаҐЈа㦥**л© ®ЇҐа*в®а б«®¦Ґ*Ёп"<<endl;
int n=len+a.len,i,j,k,m;
deck tmp(n);
for(k=1,i=l+1,j=a.l+1;i!=r || j!=a.r;k+=2)
{
for(m=0;m<k;m++)
{
if(i==r) break;
tmp.put(mas[i],1);
i=(i+1)%mas_len;
}
for(m=0;m<k+1;m++)
{
if(j==a.r) break;
tmp.put(a.mas[j],1);
j=(j+1)%a.mas_len;
}
}
return tmp;
}
void operator +=(deck a) {*this=*this+a;}
};

int main(void)
{
//test
return 0;
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.04.2014, 21:27     Deque тест на работу
Посмотрите здесь:

C++ deque<float>
C++ STL, deque, pair
C++ std::deque
C++ vector, list, deque
C++ deque iterator not dereferencable
Контейнер deque C++
Своя реализация deque C++
C++ STL deque

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 03:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru