From 13609f41f526de9c6bc5dab163c9bf08d5e2f1c0 Mon Sep 17 00:00:00 2001 From: Lukhnos Liu Date: Sat, 19 Feb 2022 09:35:48 -0800 Subject: [PATCH] Remove all the "using namespace" usage --- Source/Engine/Gramambular/Bigram.h | 11 ++-- .../Engine/Gramambular/BlockReadingBuilder.h | 45 ++++++------- Source/Engine/Gramambular/GramambularTest.cpp | 64 +++++++++++-------- Source/Engine/Gramambular/Grid.h | 57 +++++++++-------- Source/Engine/Gramambular/KeyValuePair.h | 8 +-- Source/Engine/Gramambular/LanguageModel.h | 10 ++- Source/Engine/Gramambular/Node.h | 54 ++++++++-------- Source/Engine/Gramambular/NodeAnchor.h | 9 +-- Source/Engine/Gramambular/Span.h | 14 ++-- Source/Engine/Gramambular/Unigram.h | 9 +-- Source/Engine/Gramambular/Walker.h | 25 ++++---- 11 files changed, 158 insertions(+), 148 deletions(-) diff --git a/Source/Engine/Gramambular/Bigram.h b/Source/Engine/Gramambular/Bigram.h index 750db4c1..caa46de2 100644 --- a/Source/Engine/Gramambular/Bigram.h +++ b/Source/Engine/Gramambular/Bigram.h @@ -46,8 +46,8 @@ class Bigram { bool operator<(const Bigram& inAnother) const; }; -inline ostream& operator<<(ostream& inStream, const Bigram& inGram) { - streamsize p = inStream.precision(); +inline std::ostream& operator<<(std::ostream& inStream, const Bigram& inGram) { + std::streamsize p = inStream.precision(); inStream.precision(6); inStream << "(" << inGram.keyValue << "|" << inGram.preceedingKeyValue << "," << inGram.score << ")"; @@ -55,13 +55,14 @@ inline ostream& operator<<(ostream& inStream, const Bigram& inGram) { return inStream; } -inline ostream& operator<<(ostream& inStream, const vector& inGrams) { +inline std::ostream& operator<<(std::ostream& inStream, + const std::vector& inGrams) { inStream << "[" << inGrams.size() << "]=>{"; size_t index = 0; - for (vector::const_iterator gi = inGrams.begin(); gi != inGrams.end(); - ++gi, ++index) { + for (std::vector::const_iterator gi = inGrams.begin(); + gi != inGrams.end(); ++gi, ++index) { inStream << index << "=>"; inStream << *gi; if (gi + 1 != inGrams.end()) { diff --git a/Source/Engine/Gramambular/BlockReadingBuilder.h b/Source/Engine/Gramambular/BlockReadingBuilder.h index 219e6a5a..56c335ca 100644 --- a/Source/Engine/Gramambular/BlockReadingBuilder.h +++ b/Source/Engine/Gramambular/BlockReadingBuilder.h @@ -35,7 +35,6 @@ namespace Formosa { namespace Gramambular { -using namespace std; class BlockReadingBuilder { public: @@ -45,35 +44,35 @@ class BlockReadingBuilder { size_t length() const; size_t cursorIndex() const; void setCursorIndex(size_t inNewIndex); - void insertReadingAtCursor(const string& inReading); + void insertReadingAtCursor(const std::string& inReading); bool deleteReadingBeforeCursor(); // backspace bool deleteReadingAfterCursor(); // delete bool removeHeadReadings(size_t count); - void setJoinSeparator(const string& separator); - const string joinSeparator() const; + void setJoinSeparator(const std::string& separator); + const std::string joinSeparator() const; - vector readings() const; + std::vector readings() const; Grid& grid(); protected: void build(); - static const string Join(vector::const_iterator begin, - vector::const_iterator end, - const string& separator); + static const std::string Join(std::vector::const_iterator begin, + std::vector::const_iterator end, + const std::string& separator); //最多使用六個字組成一個詞 static const size_t MaximumBuildSpanLength = 6; size_t m_cursorIndex; - vector m_readings; + std::vector m_readings; Grid m_grid; LanguageModel* m_LM; - string m_joinSeparator; + std::string m_joinSeparator; }; inline BlockReadingBuilder::BlockReadingBuilder(LanguageModel* inLM) @@ -95,7 +94,7 @@ inline void BlockReadingBuilder::setCursorIndex(size_t inNewIndex) { } inline void BlockReadingBuilder::insertReadingAtCursor( - const string& inReading) { + const std::string& inReading) { m_readings.insert(m_readings.begin() + m_cursorIndex, inReading); m_grid.expandGridByOneAtLocation(m_cursorIndex); @@ -103,7 +102,7 @@ inline void BlockReadingBuilder::insertReadingAtCursor( m_cursorIndex++; } -inline vector BlockReadingBuilder::readings() const { +inline std::vector BlockReadingBuilder::readings() const { return m_readings; } @@ -149,11 +148,12 @@ inline bool BlockReadingBuilder::removeHeadReadings(size_t count) { return true; } -inline void BlockReadingBuilder::setJoinSeparator(const string& separator) { +inline void BlockReadingBuilder::setJoinSeparator( + const std::string& separator) { m_joinSeparator = separator; } -inline const string BlockReadingBuilder::joinSeparator() const { +inline const std::string BlockReadingBuilder::joinSeparator() const { return m_joinSeparator; } @@ -179,14 +179,14 @@ inline void BlockReadingBuilder::build() { for (size_t p = begin; p < end; p++) { for (size_t q = 1; q <= MaximumBuildSpanLength && p + q <= end; q++) { - string combinedReading = Join( + std::string combinedReading = Join( m_readings.begin() + p, m_readings.begin() + p + q, m_joinSeparator); if (!m_grid.hasNodeAtLocationSpanningLengthMatchingKey(p, q, combinedReading)) { - vector unigrams = m_LM->unigramsForKey(combinedReading); + std::vector unigrams = m_LM->unigramsForKey(combinedReading); if (unigrams.size() > 0) { - Node n(combinedReading, unigrams, vector()); + Node n(combinedReading, unigrams, std::vector()); m_grid.insertNode(n, p, q); } } @@ -194,11 +194,12 @@ inline void BlockReadingBuilder::build() { } } -inline const string BlockReadingBuilder::Join( - vector::const_iterator begin, vector::const_iterator end, - const string& separator) { - string result; - for (vector::const_iterator iter = begin; iter != end;) { +inline const std::string BlockReadingBuilder::Join( + std::vector::const_iterator begin, + std::vector::const_iterator end, + const std::string& separator) { + std::string result; + for (std::vector::const_iterator iter = begin; iter != end;) { result += *iter; ++iter; if (iter != end) { diff --git a/Source/Engine/Gramambular/GramambularTest.cpp b/Source/Engine/Gramambular/GramambularTest.cpp index 8f0e008d..ca6b5d32 100644 --- a/Source/Engine/Gramambular/GramambularTest.cpp +++ b/Source/Engine/Gramambular/GramambularTest.cpp @@ -31,6 +31,9 @@ #include "Gramambular.h" #include "gtest/gtest.h" +namespace Formosa { +namespace Gramambular { + const char* SampleData = R"( # # The sample is from libtabe (http://sourceforge.net/projects/libtabe/) @@ -120,25 +123,22 @@ const char* SampleData = R"( ㄍㄠㄎㄜㄐㄧˋ 高科技 -9.842421 )"; -using namespace std; -using namespace Formosa::Gramambular; - class SimpleLM : public LanguageModel { public: SimpleLM(const char* input, bool swapKeyValue = false) { - stringstream sstream(input); + std::stringstream sstream(input); while (sstream.good()) { - string line; + std::string line; getline(sstream, line); if (!line.size() || (line.size() && line[0] == '#')) { continue; } - stringstream linestream(line); - string col0; - string col1; - string col2; + std::stringstream linestream(line); + std::string col0; + std::string col1; + std::string col2; linestream >> col0; linestream >> col1; linestream >> col2; @@ -159,23 +159,25 @@ class SimpleLM : public LanguageModel { } } - const vector bigramsForKeys(const string& preceedingKey, - const string& key) override { - return vector(); + const std::vector bigramsForKeys(const std::string& preceedingKey, + const std::string& key) override { + return std::vector(); } - const vector unigramsForKey(const string& key) override { - map >::const_iterator f = m_db.find(key); - return f == m_db.end() ? vector() : (*f).second; + const std::vector unigramsForKey(const std::string& key) override { + std::map >::const_iterator f = + m_db.find(key); + return f == m_db.end() ? std::vector() : (*f).second; } - bool hasUnigramsForKey(const string& key) override { - map >::const_iterator f = m_db.find(key); + bool hasUnigramsForKey(const std::string& key) override { + std::map >::const_iterator f = + m_db.find(key); return f != m_db.end(); } protected: - map > m_db; + std::map > m_db; }; TEST(GramambularTest, InputTest) { @@ -200,15 +202,17 @@ TEST(GramambularTest, InputTest) { Walker walker(&builder.grid()); - vector walked = walker.reverseWalk(builder.grid().width(), 0.0); + std::vector walked = + walker.reverseWalk(builder.grid().width(), 0.0); reverse(walked.begin(), walked.end()); - vector composed; - for (vector::iterator wi = walked.begin(); wi != walked.end(); - ++wi) { + std::vector composed; + for (std::vector::iterator wi = walked.begin(); + wi != walked.end(); ++wi) { composed.push_back((*wi).node->currentKeyValue().value); } - ASSERT_EQ(composed, (vector{"高科技", "公司", "的", "年中", "獎金"})); + ASSERT_EQ(composed, + (std::vector{"高科技", "公司", "的", "年中", "獎金"})); } TEST(GramambularTest, WordSegmentationTest) { @@ -226,14 +230,18 @@ TEST(GramambularTest, WordSegmentationTest) { builder2.insertReadingAtCursor("金"); Walker walker2(&builder2.grid()); - vector walked = walker2.reverseWalk(builder2.grid().width(), 0.0); + std::vector walked = + walker2.reverseWalk(builder2.grid().width(), 0.0); reverse(walked.begin(), walked.end()); - vector segmented; - for (vector::iterator wi = walked.begin(); wi != walked.end(); - ++wi) { + std::vector segmented; + for (std::vector::iterator wi = walked.begin(); + wi != walked.end(); ++wi) { segmented.push_back((*wi).node->currentKeyValue().key); } ASSERT_EQ(segmented, - (vector{"高科技", "公司", "的", "年終", "獎金"})); + (std::vector{"高科技", "公司", "的", "年終", "獎金"})); } + +} // namespace Gramambular +} // namespace Formosa diff --git a/Source/Engine/Gramambular/Grid.h b/Source/Engine/Gramambular/Grid.h index 75c9c52c..80e0dada 100644 --- a/Source/Engine/Gramambular/Grid.h +++ b/Source/Engine/Gramambular/Grid.h @@ -43,34 +43,35 @@ class Grid { size_t inSpanningLength); bool hasNodeAtLocationSpanningLengthMatchingKey(size_t inLocation, size_t inSpanningLength, - const string& inKey); + const std::string& inKey); void expandGridByOneAtLocation(size_t inLocation); void shrinkGridByOneAtLocation(size_t inLocation); size_t width() const; - vector nodesEndingAt(size_t inLocation); - vector nodesCrossingOrEndingAt(size_t inLocation); + std::vector nodesEndingAt(size_t inLocation); + std::vector nodesCrossingOrEndingAt(size_t inLocation); // "Freeze" the node with the unigram that represents the selected candidate // value. After this, the node that contains the unigram will always be // evaluated to that unigram, while all other overlapping nodes will be reset // to their initial state (that is, if any of those nodes were "frozen" or // fixed, they will be unfrozen.) - NodeAnchor fixNodeSelectedCandidate(size_t location, const string& value); + NodeAnchor fixNodeSelectedCandidate(size_t location, + const std::string& value); // Similar to fixNodeSelectedCandidate, but instead of "freezing" the node, // only boost the unigram that represents the value with an overriding score. // This has the same side effect as fixNodeSelectedCandidate, which is that // all other overlapping nodes will be reset to their initial state. void overrideNodeScoreForSelectedCandidate(size_t location, - const string& value, + const std::string& value, float overridingScore); - const string dumpDOT(); + const std::string dumpDOT(); protected: - vector m_spans; + std::vector m_spans; }; inline void Grid::clear() { m_spans.clear(); } @@ -89,7 +90,7 @@ inline void Grid::insertNode(const Node& inNode, size_t inLocation, } inline bool Grid::hasNodeAtLocationSpanningLengthMatchingKey( - size_t inLocation, size_t inSpanningLength, const string& inKey) { + size_t inLocation, size_t inSpanningLength, const std::string& inKey) { if (inLocation > m_spans.size()) { return false; } @@ -128,8 +129,8 @@ inline void Grid::shrinkGridByOneAtLocation(size_t inLocation) { inline size_t Grid::width() const { return m_spans.size(); } -inline vector Grid::nodesEndingAt(size_t inLocation) { - vector result; +inline std::vector Grid::nodesEndingAt(size_t inLocation) { + std::vector result; if (m_spans.size() && inLocation <= m_spans.size()) { for (size_t i = 0; i < inLocation; i++) { @@ -151,8 +152,9 @@ inline vector Grid::nodesEndingAt(size_t inLocation) { return result; } -inline vector Grid::nodesCrossingOrEndingAt(size_t inLocation) { - vector result; +inline std::vector Grid::nodesCrossingOrEndingAt( + size_t inLocation) { + std::vector result; if (m_spans.size() && inLocation <= m_spans.size()) { for (size_t i = 0; i < inLocation; i++) { @@ -184,8 +186,8 @@ inline vector Grid::nodesCrossingOrEndingAt(size_t inLocation) { // For nodes found at the location, fix their currently-selected candidate using // the supplied string value. inline NodeAnchor Grid::fixNodeSelectedCandidate(size_t location, - const string& value) { - vector nodes = nodesCrossingOrEndingAt(location); + const std::string& value) { + std::vector nodes = nodesCrossingOrEndingAt(location); NodeAnchor node; for (auto nodeAnchor : nodes) { auto candidates = nodeAnchor.node->candidates(); @@ -205,10 +207,9 @@ inline NodeAnchor Grid::fixNodeSelectedCandidate(size_t location, return node; } -inline void Grid::overrideNodeScoreForSelectedCandidate(size_t location, - const string& value, - float overridingScore) { - vector nodes = nodesCrossingOrEndingAt(location); +inline void Grid::overrideNodeScoreForSelectedCandidate( + size_t location, const std::string& value, float overridingScore) { + std::vector nodes = nodesCrossingOrEndingAt(location); for (auto nodeAnchor : nodes) { auto candidates = nodeAnchor.node->candidates(); @@ -225,11 +226,11 @@ inline void Grid::overrideNodeScoreForSelectedCandidate(size_t location, } } -inline const string Grid::dumpDOT() { - stringstream sst; - sst << "digraph {" << endl; - sst << "graph [ rankdir=LR ];" << endl; - sst << "BOS;" << endl; +inline const std::string Grid::dumpDOT() { + std::stringstream sst; + sst << "digraph {" << std::endl; + sst << "graph [ rankdir=LR ];" << std::endl; + sst << "BOS;" << std::endl; for (size_t p = 0; p < m_spans.size(); p++) { Span& span = m_spans[p]; @@ -237,10 +238,10 @@ inline const string Grid::dumpDOT() { Node* np = span.nodeOfLength(ni); if (np) { if (!p) { - sst << "BOS -> " << np->currentKeyValue().value << ";" << endl; + sst << "BOS -> " << np->currentKeyValue().value << ";" << std::endl; } - sst << np->currentKeyValue().value << ";" << endl; + sst << np->currentKeyValue().value << ";" << std::endl; if (p + ni < m_spans.size()) { Span& dstSpan = m_spans[p + ni]; @@ -248,20 +249,20 @@ inline const string Grid::dumpDOT() { Node* dn = dstSpan.nodeOfLength(q); if (dn) { sst << np->currentKeyValue().value << " -> " - << dn->currentKeyValue().value << ";" << endl; + << dn->currentKeyValue().value << ";" << std::endl; } } } if (p + ni == m_spans.size()) { sst << np->currentKeyValue().value << " -> " - << "EOS;" << endl; + << "EOS;" << std::endl; } } } } - sst << "EOS;" << endl; + sst << "EOS;" << std::endl; sst << "}"; return sst.str(); } diff --git a/Source/Engine/Gramambular/KeyValuePair.h b/Source/Engine/Gramambular/KeyValuePair.h index ac4395de..5c4f6b61 100644 --- a/Source/Engine/Gramambular/KeyValuePair.h +++ b/Source/Engine/Gramambular/KeyValuePair.h @@ -33,18 +33,18 @@ namespace Formosa { namespace Gramambular { -using namespace std; class KeyValuePair { public: - string key; - string value; + std::string key; + std::string value; bool operator==(const KeyValuePair& inAnother) const; bool operator<(const KeyValuePair& inAnother) const; }; -inline ostream& operator<<(ostream& inStream, const KeyValuePair& inPair) { +inline std::ostream& operator<<(std::ostream& inStream, + const KeyValuePair& inPair) { inStream << "(" << inPair.key << "," << inPair.value << ")"; return inStream; } diff --git a/Source/Engine/Gramambular/LanguageModel.h b/Source/Engine/Gramambular/LanguageModel.h index 8c41a529..79ae6ee2 100644 --- a/Source/Engine/Gramambular/LanguageModel.h +++ b/Source/Engine/Gramambular/LanguageModel.h @@ -36,16 +36,14 @@ namespace Formosa { namespace Gramambular { -using namespace std; - class LanguageModel { public: virtual ~LanguageModel() {} - virtual const vector bigramsForKeys(const string& preceedingKey, - const string& key) = 0; - virtual const vector unigramsForKey(const string& key) = 0; - virtual bool hasUnigramsForKey(const string& key) = 0; + virtual const std::vector bigramsForKeys( + const std::string& preceedingKey, const std::string& key) = 0; + virtual const std::vector unigramsForKey(const std::string& key) = 0; + virtual bool hasUnigramsForKey(const std::string& key) = 0; }; } // namespace Gramambular } // namespace Formosa diff --git a/Source/Engine/Gramambular/Node.h b/Source/Engine/Gramambular/Node.h index 9c15ce53..fe4690d9 100644 --- a/Source/Engine/Gramambular/Node.h +++ b/Source/Engine/Gramambular/Node.h @@ -35,47 +35,46 @@ namespace Formosa { namespace Gramambular { -using namespace std; class Node { public: Node(); - Node(const string& inKey, const vector& inUnigrams, - const vector& inBigrams); + Node(const std::string& inKey, const std::vector& inUnigrams, + const std::vector& inBigrams); void primeNodeWithPreceedingKeyValues( - const vector& inKeyValues); + const std::vector& inKeyValues); bool isCandidateFixed() const; - const vector& candidates() const; + const std::vector& candidates() const; void selectCandidateAtIndex(size_t inIndex = 0, bool inFix = true); void resetCandidate(); void selectFloatingCandidateAtIndex(size_t index, double score); - const string& key() const; + const std::string& key() const; double score() const; - double scoreForCandidate(string& candidate) const; + double scoreForCandidate(std::string& candidate) const; const KeyValuePair currentKeyValue() const; double highestUnigramScore() const; protected: const LanguageModel* m_LM; - string m_key; + std::string m_key; double m_score; - vector m_unigrams; - vector m_candidates; - map m_valueUnigramIndexMap; - map > m_preceedingGramBigramMap; + std::vector m_unigrams; + std::vector m_candidates; + std::map m_valueUnigramIndexMap; + std::map > m_preceedingGramBigramMap; bool m_candidateFixed; size_t m_selectedUnigramIndex; - friend ostream& operator<<(ostream& inStream, const Node& inNode); + friend std::ostream& operator<<(std::ostream& inStream, const Node& inNode); }; -inline ostream& operator<<(ostream& inStream, const Node& inNode) { +inline std::ostream& operator<<(std::ostream& inStream, const Node& inNode) { inStream << "(node,key:" << inNode.m_key << ",fixed:" << (inNode.m_candidateFixed ? "true" : "false") << ",selected:" << inNode.m_selectedUnigramIndex << "," @@ -86,8 +85,9 @@ inline ostream& operator<<(ostream& inStream, const Node& inNode) { inline Node::Node() : m_candidateFixed(false), m_selectedUnigramIndex(0), m_score(0.0) {} -inline Node::Node(const string& inKey, const vector& inUnigrams, - const vector& inBigrams) +inline Node::Node(const std::string& inKey, + const std::vector& inUnigrams, + const std::vector& inBigrams) : m_key(inKey), m_unigrams(inUnigrams), m_candidateFixed(false), @@ -100,7 +100,7 @@ inline Node::Node(const string& inKey, const vector& inUnigrams, } size_t i = 0; - for (vector::const_iterator ui = m_unigrams.begin(); + for (std::vector::const_iterator ui = m_unigrams.begin(); ui != m_unigrams.end(); ++ui) { m_valueUnigramIndexMap[(*ui).keyValue.value] = i; i++; @@ -108,30 +108,30 @@ inline Node::Node(const string& inKey, const vector& inUnigrams, m_candidates.push_back((*ui).keyValue); } - for (vector::const_iterator bi = inBigrams.begin(); + for (std::vector::const_iterator bi = inBigrams.begin(); bi != inBigrams.end(); ++bi) { m_preceedingGramBigramMap[(*bi).preceedingKeyValue].push_back(*bi); } } inline void Node::primeNodeWithPreceedingKeyValues( - const vector& inKeyValues) { + const std::vector& inKeyValues) { size_t newIndex = m_selectedUnigramIndex; double max = m_score; if (!isCandidateFixed()) { - for (vector::const_iterator kvi = inKeyValues.begin(); + for (std::vector::const_iterator kvi = inKeyValues.begin(); kvi != inKeyValues.end(); ++kvi) { - map >::const_iterator f = + std::map >::const_iterator f = m_preceedingGramBigramMap.find(*kvi); if (f != m_preceedingGramBigramMap.end()) { - const vector& bigrams = (*f).second; + const std::vector& bigrams = (*f).second; - for (vector::const_iterator bi = bigrams.begin(); + for (std::vector::const_iterator bi = bigrams.begin(); bi != bigrams.end(); ++bi) { const Bigram& bigram = *bi; if (bigram.score > max) { - map::const_iterator uf = + std::map::const_iterator uf = m_valueUnigramIndexMap.find((*bi).keyValue.value); if (uf != m_valueUnigramIndexMap.end()) { newIndex = (*uf).second; @@ -154,7 +154,7 @@ inline void Node::primeNodeWithPreceedingKeyValues( inline bool Node::isCandidateFixed() const { return m_candidateFixed; } -inline const vector& Node::candidates() const { +inline const std::vector& Node::candidates() const { return m_candidates; } @@ -187,11 +187,11 @@ inline void Node::selectFloatingCandidateAtIndex(size_t index, double score) { m_score = score; } -inline const string& Node::key() const { return m_key; } +inline const std::string& Node::key() const { return m_key; } inline double Node::score() const { return m_score; } -inline double Node::scoreForCandidate(string& candidate) const { +inline double Node::scoreForCandidate(std::string& candidate) const { for (auto unigram : m_unigrams) { if (unigram.keyValue.value == candidate) { return unigram.score; diff --git a/Source/Engine/Gramambular/NodeAnchor.h b/Source/Engine/Gramambular/NodeAnchor.h index 3fa7c7a3..2ddef073 100644 --- a/Source/Engine/Gramambular/NodeAnchor.h +++ b/Source/Engine/Gramambular/NodeAnchor.h @@ -44,7 +44,8 @@ class NodeAnchor { inline NodeAnchor::NodeAnchor() : node(0), location(0), spanningLength(0), accumulatedScore(0.0) {} -inline ostream& operator<<(ostream& inStream, const NodeAnchor& inAnchor) { +inline std::ostream& operator<<(std::ostream& inStream, + const NodeAnchor& inAnchor) { inStream << "{@(" << inAnchor.location << "," << inAnchor.spanningLength << "),"; if (inAnchor.node) { @@ -56,9 +57,9 @@ inline ostream& operator<<(ostream& inStream, const NodeAnchor& inAnchor) { return inStream; } -inline ostream& operator<<(ostream& inStream, - const vector& inAnchor) { - for (vector::const_iterator i = inAnchor.begin(); +inline std::ostream& operator<<(std::ostream& inStream, + const std::vector& inAnchor) { + for (std::vector::const_iterator i = inAnchor.begin(); i != inAnchor.end(); ++i) { inStream << *i; if (i + 1 != inAnchor.end()) { diff --git a/Source/Engine/Gramambular/Span.h b/Source/Engine/Gramambular/Span.h index 319ef738..c733886b 100644 --- a/Source/Engine/Gramambular/Span.h +++ b/Source/Engine/Gramambular/Span.h @@ -48,7 +48,7 @@ class Span { size_t maximumLength() const; protected: - map m_lengthNodeMap; + std::map m_lengthNodeMap; size_t m_maximumLength; }; @@ -72,9 +72,9 @@ inline void Span::removeNodeOfLengthGreaterThan(size_t inLength) { } size_t max = 0; - set removeSet; - for (map::iterator i = m_lengthNodeMap.begin(), - e = m_lengthNodeMap.end(); + std::set removeSet; + for (std::map::iterator i = m_lengthNodeMap.begin(), + e = m_lengthNodeMap.end(); i != e; ++i) { if ((*i).first > inLength) { removeSet.insert((*i).first); @@ -85,8 +85,8 @@ inline void Span::removeNodeOfLengthGreaterThan(size_t inLength) { } } - for (set::iterator i = removeSet.begin(), e = removeSet.end(); i != e; - ++i) { + for (std::set::iterator i = removeSet.begin(), e = removeSet.end(); + i != e; ++i) { m_lengthNodeMap.erase(*i); } @@ -94,7 +94,7 @@ inline void Span::removeNodeOfLengthGreaterThan(size_t inLength) { } inline Node* Span::nodeOfLength(size_t inLength) { - map::iterator f = m_lengthNodeMap.find(inLength); + std::map::iterator f = m_lengthNodeMap.find(inLength); return f == m_lengthNodeMap.end() ? 0 : &(*f).second; } diff --git a/Source/Engine/Gramambular/Unigram.h b/Source/Engine/Gramambular/Unigram.h index 4aa0833e..c40322e7 100644 --- a/Source/Engine/Gramambular/Unigram.h +++ b/Source/Engine/Gramambular/Unigram.h @@ -47,20 +47,21 @@ class Unigram { static bool ScoreCompare(const Unigram& a, const Unigram& b); }; -inline ostream& operator<<(ostream& inStream, const Unigram& inGram) { - streamsize p = inStream.precision(); +inline std::ostream& operator<<(std::ostream& inStream, const Unigram& inGram) { + std::streamsize p = inStream.precision(); inStream.precision(6); inStream << "(" << inGram.keyValue << "," << inGram.score << ")"; inStream.precision(p); return inStream; } -inline ostream& operator<<(ostream& inStream, const vector& inGrams) { +inline std::ostream& operator<<(std::ostream& inStream, + const std::vector& inGrams) { inStream << "[" << inGrams.size() << "]=>{"; size_t index = 0; - for (vector::const_iterator gi = inGrams.begin(); + for (std::vector::const_iterator gi = inGrams.begin(); gi != inGrams.end(); ++gi, ++index) { inStream << index << "=>"; inStream << *gi; diff --git a/Source/Engine/Gramambular/Walker.h b/Source/Engine/Gramambular/Walker.h index 1f57fa0d..3c383105 100644 --- a/Source/Engine/Gramambular/Walker.h +++ b/Source/Engine/Gramambular/Walker.h @@ -34,13 +34,12 @@ namespace Formosa { namespace Gramambular { -using namespace std; class Walker { public: Walker(Grid* inGrid); - const vector reverseWalk(size_t inLocation, - double inAccumulatedScore = 0.0); + const std::vector reverseWalk(size_t inLocation, + double inAccumulatedScore = 0.0); protected: Grid* m_grid; @@ -48,17 +47,17 @@ class Walker { inline Walker::Walker(Grid* inGrid) : m_grid(inGrid) {} -inline const vector Walker::reverseWalk(size_t inLocation, - double inAccumulatedScore) { +inline const std::vector Walker::reverseWalk( + size_t inLocation, double inAccumulatedScore) { if (!inLocation || inLocation > m_grid->width()) { - return vector(); + return std::vector(); } - vector > paths; + std::vector > paths; - vector nodes = m_grid->nodesEndingAt(inLocation); + std::vector nodes = m_grid->nodesEndingAt(inLocation); - for (vector::iterator ni = nodes.begin(); ni != nodes.end(); + for (std::vector::iterator ni = nodes.begin(); ni != nodes.end(); ++ni) { if (!(*ni).node) { continue; @@ -66,7 +65,7 @@ inline const vector Walker::reverseWalk(size_t inLocation, (*ni).accumulatedScore = inAccumulatedScore + (*ni).node->score(); - vector path = + std::vector path = reverseWalk(inLocation - (*ni).spanningLength, (*ni).accumulatedScore); path.insert(path.begin(), *ni); @@ -74,11 +73,11 @@ inline const vector Walker::reverseWalk(size_t inLocation, } if (!paths.size()) { - return vector(); + return std::vector(); } - vector* result = &*(paths.begin()); - for (vector >::iterator pi = paths.begin(); + std::vector* result = &*(paths.begin()); + for (std::vector >::iterator pi = paths.begin(); pi != paths.end(); ++pi) { if ((*pi).back().accumulatedScore > result->back().accumulatedScore) { result = &*pi;