Mrchacha Mrchacha - 11 months ago 67
C++ Question

How to make a QStringList iterator start from a specific index

I'm working on a QStringList where the program has a main iterator to go through each word. Now I want to implement a sub-iterator where I want the sub-iterator to start at a certain position.

Here is a simple visualization of my code:

for(QStringList::iterator pkg_header(inputline.begin()); pkg_header != inputline.end(); ++pkg_header){
for(QStringList::iterator pkg_section(pkg_header+1; pkg_section != pkg_header.end(); pkg_section++){

In other words, I need help to make the sub-iterator start from
position instead of doing


Answer Source

I think you can just use operator + (int) with QStringList iterators (somebody correct me if I'm wrong):

for (QStringList::iterator pkg_section = pkg_header + 1;
     pkg_section != inputline.end(); 
     pkg_section ++) 

But even if not, you can always do:

QStringList::iterator pkg_section = pkg_header;
for (pkg_section ++; pkg_section != inputline.end(); pkg_section ++) 

Apologies if you can't do + 1, I'm just not in a position to conveniently check for QStringList right now.

Also you seem to have some confusion about the termination condition for your loops. I am assuming you meant inputline.end(), as pkg_header.end() isn't valid... pkg_header is an iterator, it doesn't have an end().