Fix off-by-one since back() gives last value inside [begin,end)

This commit is contained in:
Patrick Niklaus 2014-06-09 12:19:45 +02:00
parent 50bf7694c2
commit 1d62ed028e
2 changed files with 4 additions and 4 deletions

View File

@ -386,9 +386,9 @@ template <class EdgeDataT> class InternalDataFacade : public BaseDataFacade<Edge
result.clear(); result.clear();
if (range.begin() != range.end()) if (range.begin() != range.end())
{ {
result.resize(range.back() - range.front()); result.resize(range.back() - range.front() + 1);
std::copy(m_names_char_list.begin() + range.front(), std::copy(m_names_char_list.begin() + range.front(),
m_names_char_list.begin() + range.back(), m_names_char_list.begin() + range.back() + 1,
result.begin()); result.begin());
} }
} }

View File

@ -360,9 +360,9 @@ template <class EdgeDataT> class SharedDataFacade : public BaseDataFacade<EdgeDa
result.clear(); result.clear();
if (range.begin() != range.end()) if (range.begin() != range.end())
{ {
result.resize(range.back() - range.front()); result.resize(range.back() - range.front() + 1);
std::copy(m_names_char_list.begin() + range.front(), std::copy(m_names_char_list.begin() + range.front(),
m_names_char_list.begin() + range.back(), m_names_char_list.begin() + range.back() + 1,
result.begin()); result.begin());
} }
} }