Friday, September 12, 2008

Using an STL list with current and next iterators

General algorithm for using a "current" and a "next" iterator on an STL list, which doesn't provide a convenient next() method (random-access containers such as vector do):

std::list<Foo>::iterator currIter, nextIter;

currIter = list.begin();

while(currIter != list.end())
currIter->doStuff(); // do something with the curr item

nextIter = ++currIter; //advance the iter and set it to next
if(nextIter != list.end()) // still safe to use next item
nextIter->doStuff(); // do something with the next item

Thursday, September 4, 2008

TLDs for TLC

Thanks to "Jon", who pointed out that the Top Level Domain (TLD) is reserved for those times when you need a bogus domain for testing or documentation. Go ahead, click it!

Even better, under RFC 2606 four TLDs are reserved for your testing and documentation pleasure. To quote the RFC:

.testtesting of current or new DNS related code
.exampledocumentation or examples
.invalidonline construction of domain names that are sure
to be invalid and which it is obvious at a glance are invalid
.localhostloop back