实现一个写在命名空间里的动态数组
#include<iostream>
using namespace std;
struct node
{
int id;
char name[20];
};
namespace AAA
{
node* pNode = NULL;
int len = 0;
int max = 0;
void insert(node& data)/^de& data 引用取别名
{
if (len >= max)
{
max = max + ((max >> 2) > 1 ? (max >> 2) : 1);
node* tempNode = new node[max];
for (int i = 0; i < len; i++)
{
tempNode[i] = pNode[i];
}
if (pNode != NULL)
{
delete[]pNode;
}
pNode = tempNode;
}
pNode[len++] = data;
}
void print()
{
for (int i = 0; i < len; i++)
{
printf("%d\t%s\n", pNode[i].id, pNode[i].name);
}
}
}
using namespace AAA;
int main()
{
node n1 = { 1, "aaaa" };
node n2 = { 2, "bbbb" };
node n3 = { 3, "cccc" };
node n4 = { 4, "dddd" };
node n5 = { 5, "eeee" };
node n6 = { 6, "ffff" };
insert(n1);
insert(n2);
insert(n3);
insert(n4);
insert(n5);
insert(n6);
print();
delete[]pNode;
return 0;
}