From 1bbb748c4ebbaaf42440cec220562c8c2027cb80 Mon Sep 17 00:00:00 2001 From: Nathan Hourt Date: Thu, 4 Jun 2015 10:42:59 -0400 Subject: [PATCH] Optimize deque to/from variant --- include/fc/container/deque.hpp | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/include/fc/container/deque.hpp b/include/fc/container/deque.hpp index 224b02d..d59a1ad 100644 --- a/include/fc/container/deque.hpp +++ b/include/fc/container/deque.hpp @@ -34,10 +34,9 @@ namespace fc { template void to_variant( const std::deque& var, variant& vo ) { - std::vector vars(var.size()); - size_t i = 0; - for( auto itr = var.begin(); itr != var.end(); ++itr, ++i ) - vars[i] = variant(*itr); + std::vector vars; + vars.reserve(var.size()); + std::transform(var.begin(), var.end(), std::back_inserter(vars), [](const T& t) { return variant(t); }); vo = vars; } template @@ -45,8 +44,6 @@ namespace fc { { const variants& vars = var.get_array(); vo.clear(); - vo.reserve( vars.size() ); - for( auto itr = vars.begin(); itr != vars.end(); ++itr ) - vo.insert( itr->as() ); + std::transform(vars.begin(), vars.end(), std::back_inserter(vo), [](const variant& t) { return t.template as(); }); } } // namespace fc