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;
}
Ejemplo n.º 2
0
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);
		}
	}
}