]> git.lyx.org Git - lyx.git/blobdiff - src/iterators.h
ws change
[lyx.git] / src / iterators.h
index 148eda029ceabff7a47c8fbdea8794230d70f10a..b87d16e5373704abc3c374ae5e712eefc5c98ccd 100644 (file)
@@ -3,7 +3,7 @@
 #ifndef ITERATORS_H
 #define ITERATORS_H
 
-#include <vector>
+#include <stack>
 
 #include "paragraph.h"
 
@@ -35,24 +35,29 @@ bool operator!=(ParPosition const & pos1, ParPosition const & pos2) {
 
 class ParIterator {
 public:
+       ///
+       typedef std::stack<ParPosition> PosHolder;
        ///
        ParIterator() {}
-       //
-       ParIterator(Paragraph * par) 
-               : positions(1, ParPosition(par)) {}
+       ///
+       ParIterator(Paragraph * par) {
+               positions.push(ParPosition(par));
+       }
        ///
        ParIterator & operator++();
        ///
-       Paragraph * operator*() { return positions.back().par; }
+       Paragraph * operator*() {
+               return positions.top().par;
+       }
        ///
-       vector<ParPosition>::size_type size() const 
+       PosHolder::size_type size() const
                { return positions.size(); }
        ///
        friend
        bool operator==(ParIterator const & iter1, ParIterator const & iter2);
 private:
        ///
-       std::vector<ParPosition> positions;
+       PosHolder positions;
 };