#include "stdafx.h"
#include <memory>
#include <list>
// #include <unordered_map>
std::list<std::unique_ptr<char>> dlist;
void put3(std::unique_ptr<char> &data)
{
dlist.push_back(std::move(data));
}
void put2(std::unique_ptr<char> &data)
{
put3(data);
}
void put(std::unique_ptr<char> &data)
{
put2(data);
}
int main()
{
const int n = 1000000;
const int l = 64;
const char x = '0';
char *ptr = nullptr;
for (int i=0; i<n; i++)
{
std::unique_ptr<char> upt(new char[l+1]);
if ((ptr = upt.get()) != nullptr)
{
memset(ptr, x + (i%10), l);
ptr[l] = '\0';
put(upt);
if (upt.get() != nullptr)
printf("*");
}
}
std::list<std::unique_ptr<char>>::const_iterator it = dlist.begin();
for (; it!=dlist.end(); it++)
{
// printf("%s\r\n", it->get());
}
printf("%ld\r\n", dlist.size());
dlist.clear();
return 0;
}