i + 1
or i - 1
, only ++
and --
i
after
l.erase(i)
?
list::iterator l1_begin = list1.begin(); list ::iterator l2_begin = list2.begin(); while ((l1_begin != list1.end()) && (l2_begin != list2.end())) { list ::iterator l1_next = list1.end(); l1_next++; list ::iterator l2_next = list2.end(); l2_next++; if (*l1_begin <= *l2_begin) { list3.splice(list3.end(), list1, l1_begin); l1_begin = l1_next; } else { list3.splice(list3.end(), list2, l2_begin); l2_begin = l2_next; } } while (l1_begin != list1.end()) { list ::iterator next = list1.end(); next++; list3.splice(list3.end(), list1, l1_begin); l1_begin = next; } while (l2_begin != list2.end()) { list ::iterator next = list2.end(); next++; list3.splice(list3.end(), list2, l2_begin); l2_begin = next; }
merge()
generic algorithm.
for (list::iterator end = ilist.begin(); end != ilist.end(); end++) { list ::iterator next = end; next++; for (list ::iterator here = ilist.begin(); here != end; here++) if (*next <= *here) { ilist.splice(here, ilist, next); break; } }
l.sort()
member function
This page last modified on 25 July 2000.