The unified diff between revisions [a69b843c..] and [26a8efec..] is displayed below. It can also be downloaded as a raw diff.

#
#
# patch "markov.cc"
#  from [3d988003848ccd30d002c01ba0c37b5a18af3ee2]
#    to [2647ebc76e7792aed12fe85222b1bfcd9c79f9c2]
#
# patch "markov.hh"
#  from [4a90060f8f59d6ec659476c5907bb4949e779973]
#    to [2e96c24eebd5a1986a15786fe0a9a32662a7db94]
#
# patch "tokens_test.cc"
#  from [2fbe6a442cbc6b29943b87051b164da7a12c14e3]
#    to [23b40a5e896510592ccca8d829fa8203845c73d2]
#
============================================================
--- markov.cc	3d988003848ccd30d002c01ba0c37b5a18af3ee2
+++ markov.cc	2647ebc76e7792aed12fe85222b1bfcd9c79f9c2
@@ -27,6 +27,17 @@ MarkovState::operator==(const MarkovStat
     return s.state == state;
 }

+bool
+MarkovState::operator<(const MarkovState &s)
+{
+    return s.state < state;
+}
+bool
+MarkovState::operator!=(const MarkovState &s)
+{
+    return s.state != state;
+}
+
 MarkovModel::MarkovModel (const Stash &s, int length)
 {
     const vector<token_t> stash = s.get_stash ();
============================================================
--- markov.hh	4a90060f8f59d6ec659476c5907bb4949e779973
+++ markov.hh	2e96c24eebd5a1986a15786fe0a9a32662a7db94
@@ -4,6 +4,7 @@
 #include "tokens.hh"
 #include <vector>
 #include <deque>
+#include <map>

 class MarkovState {
 public:
@@ -14,6 +15,8 @@ public:
     MarkovState (const std::deque<token_t> &);
     ~MarkovState ();
     bool operator==(const MarkovState &);
+    bool operator!=(const MarkovState &);
+    bool operator<(const MarkovState &);
 };

 typedef std::pair< MarkovState, MarkovState > markov_pair;
@@ -61,17 +64,31 @@ namespace std {
             return p1.first == p2.first && p1.second == p2.second;
         }
     };
+
+    template <>
+    struct less<markov_pair>
+    {
+        bool
+        operator()(markov_pair p1, markov_pair p2)
+        {
+            if (p1.first < p2.first) {
+                return true;
+            } else if (p1.first != p2.first) {
+                return false;
+            } else {
+                return p1.second < p2.second;
+            }
+        }
+    };
 }

 class MarkovModel {
 private:
-    __EXT__::hash_map<markov_pair, int, __EXT__::hash<markov_pair> > edges;
+    std::map<markov_pair, int > edges;

 public:
     MarkovModel (const Stash&, int);
     ~MarkovModel ();
 };

-
-
 #endif
============================================================
--- tokens_test.cc	2fbe6a442cbc6b29943b87051b164da7a12c14e3
+++ tokens_test.cc	23b40a5e896510592ccca8d829fa8203845c73d2
@@ -22,7 +22,7 @@ input_test (s_tok &t)
 {
     string i;

-    for (int c=0;c<5;c++) {
+    for (int c=0;c<50;c++) {
         cin >> i;
         t.add (i);
     }