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);
}