ngram.cpp
Go to the documentation of this file.
/******************************************************
* Presage, an extensible predictive text entry system
* ---------------------------------------------------
*
* Copyright (C) 2008 Matteo Vescovi <matteo.vescovi@yahoo.co.uk>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
*
**********(*)*/
#include "ngram.h"
Ngram::Ngram(const int size)
{
assert(size > 0);
N = size;
ngrams = new std::string[N];
}
Ngram::~Ngram()
{
delete[] ngrams;
}
Ngram& Ngram::operator=( const Ngram& other )
{
if (&other != this) {
for (int i = 0; i < N; i++) {
ngrams[i] = other.ngrams[i];
}
}
return *this;
}
bool Ngram::operator<( const Ngram& other ) const
{
if (&other != this) {
for (int i = N - 1; i >= 0; i--) {
if (ngrams[i] < other.ngrams[i]) {
return true;
}
}
}
return false;
}
std::string Ngram::toString() const
{
std::string str;
for (int i = 0; i < N; i++) {
str += "<" + ngrams[i] + "> ";
}
return str;
}
std::string Ngram::getNgram(const int n) const
{
assert(n >= 0 && n < N);
return ngrams[n];
}
void Ngram::setNgram(const int n, const std::string str)
{
assert(n >= 0 && n < N);
ngrams[n] = str;
}
int Ngram::getN() const
{
return N;
}
std::ostream& operator<<( std::ostream& output, const Ngram& b )
{
output << b.toString();
return output;
}
Ngram::getNgram
std::string getNgram(const int n) const
Definition: ngram.cpp:73
Ngram::operator<
bool operator<(const Ngram &) const
Definition: ngram.cpp:51
Ngram::toString
std::string toString() const
Definition: ngram.cpp:64
Ngram::N
int N
Definition: ngram.h:50
Ngram::setNgram
void setNgram(const int n, const std::string str)
Definition: ngram.cpp:79
Ngram::Ngram
Ngram(const int N)
Definition: ngram.cpp:27
Ngram::operator=
Ngram & operator=(const Ngram &)
Definition: ngram.cpp:39
Ngram::getN
int getN() const
Definition: ngram.cpp:85
operator<<
std::ostream & operator<<(std::ostream &output, const Prediction &p)
Definition: prediction.cpp:116
ngram.h
Ngram::ngrams
std::string * ngrams
Definition: ngram.h:51
Ngram::~Ngram
~Ngram()
Definition: ngram.cpp:34
Ngram
Definition: ngram.h:33