Download mosesdecoder/moses2/InMemoryTrie/Node.h from suricodes/hindi-sindhi-docker: direct link, hf CLI and curl.
- Browser
- Download file 1.8 kB
-
https://huggingface.co/spaces/suricodes/hindi-sindhi-docker/resolve/main/mosesdecoder/moses2/InMemoryTrie/Node.h
- Command line
-
hf download hf://spaces/suricodes/hindi-sindhi-docker/mosesdecoder/moses2/InMemoryTrie/Node.h
-
curl -L -o Node.h https://huggingface.co/spaces/suricodes/hindi-sindhi-docker/resolve/main/mosesdecoder/moses2/InMemoryTrie/Node.h
1.8 kB
| namespace Moses2 | |
| { | |
| template<class KeyClass, class ValueClass> | |
| class Node | |
| { | |
| public: | |
| Node() { | |
| } | |
| Node(const ValueClass& value) : | |
| m_value(value) { | |
| } | |
| ~Node(); | |
| void setKey(const KeyClass& key); | |
| void setValue(const ValueClass& value) { | |
| m_value = value; | |
| } | |
| Node* findSub(const KeyClass& key); | |
| const Node* findSub(const KeyClass& key) const; | |
| Node *addSubnode(const KeyClass& cKey) { | |
| Node *node = findSub(cKey); | |
| if (node) { | |
| return node; | |
| } else { | |
| node = new Node(); | |
| subNodes[cKey] = node; | |
| return node; | |
| } | |
| } | |
| std::vector<Node*> getSubnodes(); | |
| const ValueClass &getValue() const { | |
| return m_value; | |
| } | |
| private: | |
| boost::unordered_map<KeyClass, Node*> subNodes; | |
| ValueClass m_value; | |
| }; | |
| template<class KeyClass, class ValueClass> | |
| Node<KeyClass, ValueClass>::~Node() | |
| { | |
| typename boost::unordered_map<KeyClass, Node*>::iterator iter; | |
| for (iter = subNodes.begin(); iter != subNodes.end(); ++iter) { | |
| Node *node = iter->second; | |
| delete node; | |
| } | |
| } | |
| template<class KeyClass, class ValueClass> | |
| const Node<KeyClass, ValueClass>* Node<KeyClass, ValueClass>::findSub( | |
| const KeyClass& cKey) const | |
| { | |
| typename boost::unordered_map<KeyClass, Node*>::const_iterator iter; | |
| iter = subNodes.find(cKey); | |
| if (iter != subNodes.end()) { | |
| Node *node = iter->second; | |
| return node; | |
| } | |
| return NULL; | |
| } | |
| template<class KeyClass, class ValueClass> | |
| Node<KeyClass, ValueClass>* Node<KeyClass, ValueClass>::findSub( | |
| const KeyClass& cKey) | |
| { | |
| typename boost::unordered_map<KeyClass, Node*>::iterator iter; | |
| iter = subNodes.find(cKey); | |
| if (iter != subNodes.end()) { | |
| Node *node = iter->second; | |
| return node; | |
| } | |
| return NULL; | |
| } | |
| } | |