Conceptual frameworks for constructing iterators for compound data structures—Electronic appendix I: Component-iterator and rank-iterator classes
Authors:Jyrki Katajainen and Andreas Milton Maniotis
Publication:CPH STL Report 2012-3, Department of Computer Science, University of Copenhagen (2012), 47 pp.
Full text:<pdf.gif>PDF (418 kB)  
Abstract:

This report is an electronic appendix to the paper "Conceptual Frameworks for Constructing Iterators for Compound Data Structures" that has been submitted for publication. This report describes the proof-of-concept prototypes for

Component iterator:
It can be used to provide iterators for components needing a bidirectional iterator, provided that the components support the following seven getter functions for navigation:
  • owner_type* up() const;
  • self_type* next() const;
  • self_type* previous() const;
  • subordinate_type* down() const;
  • bool is_end() const;
  • iterator begin() const;
  • iterator end() const;
The components at the bottom layer should also support the function
  • value_type const& element() const;
Moreover, we need 2-5 setter functions to update the information. The actual number depends on which changes are allowed to be done by others.
Rank iterator:
It can be used to provide iterators for components needing a random-access iterator; the only requirement is that the components retain indices valid, i.e. the ith element must have the same index its entire lifetime.

This report also gives the other programs described in the use cases and used in the experiments of this paper. All programs have been revised, corrected, and cleaned up after the submission.

Related:<html.gif>HTML (Manuscript)  <html.gif>HTML (Later version)  <html.gif>HTML (tar ball)  
BibLATEX:
@report{KM2012S,
  author = {Jyrki Katajainen and Andreas Milton Maniotis},
  title = {Conceptual frameworks for constructing iterators for compound data
    structures---{E}lectronic appendix~{I}: {C}omponent-iterator and rank-iterator
    classes},
  type = {CPH STL Report},
  number = {2012-3},
  institution = {Department of Computer Science, University of Copenhagen},
  year = {2012},
  pagetotal = {47},
}
This page was generated by Jyrki Katajainen <jyrki@di.ku.dk> on 20.01.2013.