sequence.h

来自「C++编写的代码」· C头文件 代码 · 共 70 行

H
70
字号
#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 + =
减小字号Ctrl + -
显示快捷键?