📄 sequence.h
字号:
#ifndef SEQUENCE_H
#define SEQUENCE_H
#include <vector>
#include <cassert>
#include "Item.h"
class Sequence
{
public:
Sequence(unsigned seqId = 0):seqId_(seqId), lastTimestamp_(0)
{}
Sequence(const std::string& seqStr, unsigned seqId = 0);
std::string ToString()const;
void RemoveItem(unsigned index);
Sequence SExtern(Item item)const; //对原序列做S扩展,返回新序列。
Sequence IExtern(Item item)const; //对原序列做S扩展,返回新序列。
unsigned GetSuffixPos(const Sequence& prefix )const; //获取后缀起始位置。
bool Empty()const
{
return seq_.empty();
}
unsigned Length()const
{
return seq_.size();
}
unsigned short LastTimestamp()const
{
return lastTimestamp_;
}
Item& operator[](unsigned index)
{
assert(index < seq_.size());
return seq_[index];
}
const Item& operator[](unsigned index)const
{
assert(index < seq_.size());
return seq_[index];
}
static unsigned npos()
{
return std::string::npos;
}
unsigned SequenceId()const
{
return seqId_;
}
protected:
void AddAnItem(const Item& item)
{
seq_.push_back(item);
}
private:
std::vector<Item> seq_;
unsigned seqId_;
unsigned lastTimestamp_;
};
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -