首先展示测试结果
/*************************************************************************
> File Name: test_map_node.cc
> Author: hsz
> Brief:
> Created Time: Mon 28 Nov 2022 04:29:58 PM CST
************************************************************************/
#include <utils/map_node.h>
#include <stdio.h>
#include <iostream>
using namespace std;
int main(int argc, char **argv)
{
eular::MapData<int, int> *data = eular::MapData<int, int>::create();
printf("map size = %zu\n", data->size());
printf("\ninsert to map(%p) 0, 1, 2\n", data);
data->insert(0, 0);
data->insert(1, 1);
data->insert(2, 2);
printf("map size = %zu\n", data->size());
printf("foreach map\n");
for (auto it = data->begin(); it != data->end(); it = data->nextNode(it)) {
printf("\tkey = %d, value = %d\n", it->key, it->value);
}
printf("\ninsert to map(%p) 3, 4 and erase 2\n", data);
data->insert(3, 3);
data->insert(4, 4);
data->erase(2);
printf("reforeach map\n");
for (auto it = data->rbegin(); it != data->rend(); it = data->prevNode(it)) {
printf("\tkey = %d, value = %d\n", it->key, it->value);
}
data->clear();
printf("map size = %zu\n", data->size());
printf("foreach map\n");
for (auto it = data->begin(); it != data->end(); it = data->nextNode(it)) {
printf("\tkey = %d, value = %d\n", it->key, it->value);
}
eular::MapDataBase::FreeData(data);
return 0;
}
内存检测结果
结论:从测试结果来看,可以正常操作及不存在内存泄漏的情况
目前还处于未完成阶段,只是将完成的c++代码进行接口测试和内存泄漏测试,map将在MapData的基础上进行封装,MapData无问题后map的问题也将少很多。