⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 sequence.h

📁 C++编写的代码
💻 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 + -