[code]#include <turboc.h>
#include <iostream>
using namespace std;
#define ELETYPE int
class dArray
{
protected:
ELETYPE *ar;
unsigned size;
unsigned num;
unsigned growby;
public:
dArray(unsigned asize = 100, unsigned agrowby = 10);
~dArray();
void insert(int idx, ELETYPE value);
void Delete(int idx);
void append(ELETYPE value);
ELETYPE getAt(int idx)
{
return ar[idx];
}
unsigned getSize()
{
return size;
}
unsigned getNum()
{
return num;
}
void setAt(int idx, ELETYPE value)
{
ar[idx] = value;
}
void dump(char *sMark);
};
dArray::dArray(unsigned asize, unsigned agrowby)
{
size = asize;
growby = agrowby;
num = 0;
ar = (ELETYPE*)malloc(size*sizeof(ELETYPE));
}
dArray::~dArray()
{
free(ar);
}
void dArray::insert(int idx, ELETYPE value)
{
unsigned need;
need = num + 1;
if(need > size)
{
size = need + growby;
ar = (ELETYPE *)realloc(ar, size * sizeof(ELETYPE));
}
memmove(ar+idx+1, ar+idx, (num-idx)*sizeof(ELETYPE));
ar[idx] = value;
num++;
}
void dArray::Delete(int idx)
{
memmove(ar+idx, ar+idx+1, (num-idx-1)*sizeof(ELETYPE));
num--;
}
void dArray::append(ELETYPE value)
{
insert(num, value);
}
void dArray::dump(char *sMark)
{
unsigned i;
cout << sMark << "=> size=" << size << ", count=" << num << ":";
for(i=0; i<num; i++)
cout << getAt(i) << ' ';
cout << endl;
}
void main()
{
dArray ar;
int i;
for(i=1;i<=8;i++) ar.append(i); ar.dump("six append");
ar.insert(3, 10); ar.dump("ten append");
ar.insert(3, 11); ar.dump("eleven append");
ar.insert(3, 12); ar.dump("twelve append");
ar.Delete(7); ar.dump("Element seven remove");
}[/code]
#include <iostream>
using namespace std;
#define ELETYPE int
class dArray
{
protected:
ELETYPE *ar;
unsigned size;
unsigned num;
unsigned growby;
public:
dArray(unsigned asize = 100, unsigned agrowby = 10);
~dArray();
void insert(int idx, ELETYPE value);
void Delete(int idx);
void append(ELETYPE value);
ELETYPE getAt(int idx)
{
return ar[idx];
}
unsigned getSize()
{
return size;
}
unsigned getNum()
{
return num;
}
void setAt(int idx, ELETYPE value)
{
ar[idx] = value;
}
void dump(char *sMark);
};
dArray::dArray(unsigned asize, unsigned agrowby)
{
size = asize;
growby = agrowby;
num = 0;
ar = (ELETYPE*)malloc(size*sizeof(ELETYPE));
}
dArray::~dArray()
{
free(ar);
}
void dArray::insert(int idx, ELETYPE value)
{
unsigned need;
need = num + 1;
if(need > size)
{
size = need + growby;
ar = (ELETYPE *)realloc(ar, size * sizeof(ELETYPE));
}
memmove(ar+idx+1, ar+idx, (num-idx)*sizeof(ELETYPE));
ar[idx] = value;
num++;
}
void dArray::Delete(int idx)
{
memmove(ar+idx, ar+idx+1, (num-idx-1)*sizeof(ELETYPE));
num--;
}
void dArray::append(ELETYPE value)
{
insert(num, value);
}
void dArray::dump(char *sMark)
{
unsigned i;
cout << sMark << "=> size=" << size << ", count=" << num << ":";
for(i=0; i<num; i++)
cout << getAt(i) << ' ';
cout << endl;
}
void main()
{
dArray ar;
int i;
for(i=1;i<=8;i++) ar.append(i); ar.dump("six append");
ar.insert(3, 10); ar.dump("ten append");
ar.insert(3, 11); ar.dump("eleven append");
ar.insert(3, 12); ar.dump("twelve append");
ar.Delete(7); ar.dump("Element seven remove");
}[/code]
'Native > C++' 카테고리의 다른 글
연산자 함수 (operator function) (0) | 2013.10.02 |
---|---|
revolve (0) | 2013.10.02 |
mutable (0) | 2013.10.02 |
const member function (0) | 2013.10.02 |
const member (0) | 2013.10.02 |