From b49a89ad343dad6a913b72750ebd16f9c548d440 Mon Sep 17 00:00:00 2001 From: Josua Mayer Date: Sun, 3 Jan 2016 14:24:55 +0100 Subject: [PATCH] std::vector::erase is expensive; use std::list:erase instead erasing from a vector at random is very expensive. std::list however is made for that purpose! --- libgrive/src/base/State.cc | 6 +++--- libgrive/src/base/State.hh | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/libgrive/src/base/State.cc b/libgrive/src/base/State.cc index f743033..7b81993 100644 --- a/libgrive/src/base/State.cc +++ b/libgrive/src/base/State.cc @@ -172,9 +172,9 @@ std::size_t State::TryResolveEntry() assert( !m_unresolved.empty() ) ; std::size_t count = 0 ; - std::vector& en = m_unresolved ; - - for ( std::vector::iterator i = en.begin() ; i != en.end() ; ) + std::list& en = m_unresolved ; + + for ( std::list::iterator i = en.begin() ; i != en.end() ; ) { if ( Update( *i ) ) { diff --git a/libgrive/src/base/State.hh b/libgrive/src/base/State.hh index 1d5dcc1..088be38 100644 --- a/libgrive/src/base/State.hh +++ b/libgrive/src/base/State.hh @@ -79,7 +79,7 @@ private : Val m_st ; bool m_force ; - std::vector m_unresolved ; + std::list m_unresolved ; } ; } // end of namespace gr