void testErase(IntVector& test) { cout << "Erase pos 1" << endl; test.erase(1); testValues(test); cout << "Erase pos 2" << endl; test.erase(2); testValues(test); cout << "Erase pos 3" << endl; test.erase(3); testValues(test); }
inline void IndexedList::erase(size_t const&e) { // check(); if (contains(e)) { // TRACE("remove "<<e<<" " <<_element[e]<<std::endl); // for (IntVector::const_iterator i(_list.begin()); i != _list.end(); ++i) // std::cout << *i << std::endl; /// on switch avec le dernier puis on réduit // std::cout << "_list[" << _element[e] << "] = " << _list.back() // << std::endl; _list[_element[e]] = front(); _element[front()] = _element[e]; // std::cout << "_element[" << e << "] = " << max_size() << std::endl; _element[e] = max_size(); _list[size() - 1] = -1; // std::cout << "_list[" << size() - 1 << "] = -1;" << std::endl; _list.erase(_list.begin() + _list.size() - 1); // std::cout << "###########" << std::endl; // for (IntVector::const_iterator i(_list.begin()); i != _list.end(); ++i) // std::cout << *i << std::endl; /// } // check(); // TRACE_N(size()); // TRACE_N(max_size()); // DEBUG_ASSERT("NO REALLOCATION ALLOWED"&&size()<=max_size()); }