RoadSection::SectionContainer RoadSection::getAdjacent(const Ptr& from) const { // create copy SectionContainer ret = m_sections; // remove every element == from ret.erase(std::remove(ret.begin(), ret.end(), from), ret.end()); // remove every nullptr ret.erase(std::remove(ret.begin(), ret.end(), nullptr), ret.end()); return ret; }
void SectionContainer<TValue, TContainer>:: transfer_elements(SectionContainer& c) { for(int i = 0; i < c.num_sections(); ++i){ for(iterator iter = c.section_begin(i); iter != c.section_end(i);){ const TValue& val = *iter; iterator iterOld = iter; ++iter; c.erase(iterOld, i); insert(val, i); } } }