From 88f30dbb5572fee500be7c1b7cf6622acefc74b4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=82=B9=E6=99=93=E8=88=AA?= <1210603696@qq.com> Date: Sun, 15 Feb 2015 12:14:07 +0800 Subject: [PATCH] code clean --- TinySTL/Detail/AVLTree.impl.h | 4 ++-- TinySTL/Detail/BinarySearchTree.impl.h | 5 ++--- TinySTL/Detail/List.impl.h | 15 +++------------ 3 files changed, 7 insertions(+), 17 deletions(-) diff --git a/TinySTL/Detail/AVLTree.impl.h b/TinySTL/Detail/AVLTree.impl.h index 01229a5..eb9d508 100644 --- a/TinySTL/Detail/AVLTree.impl.h +++ b/TinySTL/Detail/AVLTree.impl.h @@ -154,8 +154,8 @@ namespace TinySTL{ void avl_tree::insert_elem(const T& val, node *&p){ if (p == 0){ p = dataAllocator::allocate(); - //p->data_ = val; - construct(&(p->data_), val); + dataAllocator::construct(p); + p->data_ = val; p->left_ = p->right_ = 0; p->height_ = 1; ++size_; diff --git a/TinySTL/Detail/BinarySearchTree.impl.h b/TinySTL/Detail/BinarySearchTree.impl.h index a08b00c..4d48f40 100644 --- a/TinySTL/Detail/BinarySearchTree.impl.h +++ b/TinySTL/Detail/BinarySearchTree.impl.h @@ -137,9 +137,8 @@ namespace TinySTL{ void binary_search_tree::insert_elem(const T& val, node *&ptr){//重复的元素不插入 if (ptr == 0){ ptr = nodeAllocator::allocate(); - TinySTL::construct(&(ptr->data_), val); - //memset(ptr, 0, sizeof(node)); - //ptr->data_ = val; + nodeAllocator::construct(ptr); + ptr->data_ = val; ptr->left_ = ptr->right_ = 0; ++size_; } diff --git a/TinySTL/Detail/List.impl.h b/TinySTL/Detail/List.impl.h index 2712884..aeb4e84 100644 --- a/TinySTL/Detail/List.impl.h +++ b/TinySTL/Detail/List.impl.h @@ -44,10 +44,6 @@ namespace TinySTL{ template template void list::insert_aux(iterator position, InputIterator first, InputIterator last, std::false_type){ - //for (; first != last; ++first){ - // insert(position, *first); - // position = insert(position, *first); - //} for (--last; first != last; --last){ position = insert(position, *last); } @@ -56,18 +52,13 @@ namespace TinySTL{ template typename list::nodePtr list::newNode(const T& val = T()){ nodePtr res = nodeAllocator::allocate(); - res->container = this; - //res->data = val; //-> bug - //nodeAllocator::construct(&(res->data), val); - TinySTL::construct(&(res->data), val);//fix - res->prev = nullptr; - res->next = nullptr; + nodeAllocator::construct(res, Detail::node(val, nullptr, nullptr, this)); return res; } template void list::deleteNode(nodePtr p){ - p->prev = nullptr; - p->next = nullptr; + p->prev = p->next = nullptr; + nodeAllocator::destroy(p); nodeAllocator::deallocate(p); } template -- GitLab