IterImageSegs15C - mdaus/nitro GitHub Wiki
Using just the iterator:
/* Walk each image and show */
nitf_ListIterator iter = nitf_List_begin(record->images);
nitf_ListIterator end = nitf_List_end(record->images);
while (nitf_ListIterator_notEqualTo(&iter, &end))
{
nitf_ImageSegment *segment = (nitf_ImageSegment *) nitf_ListIterator_get(&iter);
...
nitf_ListIterator_increment(&iter);
}
nitf_ListIterator iter = nitf_List_begin(record->images);
nitf_ListIterator end = nitf_List_end(record->images);
while (nitf_ListIterator_notEqualTo(&iter, &end))
{
nitf_ImageSegment *segment = (nitf_ImageSegment *) nitf_ListIterator_get(&iter);
...
nitf_ListIterator_increment(&iter);
}
Using an integer counter. This method is less efficient than the first, but is occasionally more convenient:
/* Walk each image and show */
int i, last;
...
last = (int)nitf_List_size(list);
for (i = 0; i < last; i++)
{
nitf_ListIterator iter = nitf_List_at(list, i);
nitf_ImageSegment *segment = (nitf_ImageSegment *) nitf_ListIterator_get(&iter);
...
}
int i, last;
...
last = (int)nitf_List_size(list);
for (i = 0; i < last; i++)
{
nitf_ListIterator iter = nitf_List_at(list, i);
nitf_ImageSegment *segment = (nitf_ImageSegment *) nitf_ListIterator_get(&iter);
...
}
This same approach works for other segments as well.