c++ - Checking if an iterator is valid -
is there way check if iterator (whether vector, list, deque...) (still) dereferencable, i.e. has not been invalidated?
i have been using try
-catch
, there more direct way this?
example: (which doesn't work)
list<int> l; (i = 1; i<10; i++) { l.push_back(i * 10); } itd = l.begin(); itd++; if (something) { l.erase(itd); } /* now, in other place.. check if itd points somewhere meaningful */ if (itd != l.end()) { // blablabla }
i assume mean "is iterator valid," hasn't been invalidated due changes container (e.g., inserting/erasing to/from vector). in case, no, cannot determine if iterator (safely) dereferencable.
Comments
Post a Comment