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!
pull/54/head
Josua Mayer 2016-01-03 14:24:55 +01:00
parent c647c5f89f
commit b49a89ad34
2 changed files with 4 additions and 4 deletions

View File

@ -172,9 +172,9 @@ std::size_t State::TryResolveEntry()
assert( !m_unresolved.empty() ) ;
std::size_t count = 0 ;
std::vector<Entry>& en = m_unresolved ;
for ( std::vector<Entry>::iterator i = en.begin() ; i != en.end() ; )
std::list<Entry>& en = m_unresolved ;
for ( std::list<Entry>::iterator i = en.begin() ; i != en.end() ; )
{
if ( Update( *i ) )
{

View File

@ -79,7 +79,7 @@ private :
Val m_st ;
bool m_force ;
std::vector<Entry> m_unresolved ;
std::list<Entry> m_unresolved ;
} ;
} // end of namespace gr