#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; }
转载于:https://www.cnblogs.com/1980year/p/7699849.html