June 2017
Intermediate to advanced
532 pages
12h 59m
English
Both STL algorithms and the range-based for loop assume that the begin and end positions of the iteration are known in advance. In some situations, however, it is hardly possible to know the end position before reaching it by iteration.
A very simple example for this is iterating over plain C-Style strings, the length of which is not known before runtime. The code which iterates over such strings usually looks like this:
for (const char *c_ponter = some_c_string; *c_pointer != '\0'; ++c_pointer) { const char c = *c_pointer; // do something with c}
The only way to put this into a range-based for loop seems to be wrapping it into an std::string, which has begin() and end() functions: ...
Read now
Unlock full access