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

📄 base.h

📁 生成tin
💻 H
字号:
#ifndef _BASE_H
#define _BASE_H

template <class T>
int _find(const T& t,int l,int r,const vector<T>& v)
{
	if(t < v[l] || t > v[r])
		return -1;
	int i = (l + r) / 2;
	if(t == v[i])
		return i;
	else if(t < v[i])
		return _find(t,l,i-1,v);
	else
		return _find(t,i+1,r,v);
}
template <class T>
int Find(const T& t,const vector<T>& v)
{
	return _find(t,0,v.size()-1,v);
}
template <class T>
void _iore(const T& t,int l,int r,vector<T>& v)
{
	if(t<v[l])
	{
		v.insert(v.begin()+l,t);
		return;
	}
	else if(t>v[r])
	{
		v.insert(v.begin()+r+1,t);
		return;
	}
	int i = (l + r) / 2;
	if(t == v[i])
		v.erase(v.begin()+i);
	else if(t < v[i])
		_iore(t,l,i-1,v);
	else
		_iore(t,i+1,r,v);
}
template <class T>
void InsertOrErase(const T& t,vector<T>& v)
{
	if(v.size() == 0)
	{
		v.push_back(t);
	}
	else 
	{
		_iore(t,0,v.size()-1,v);
	}
}
template <class T>
int _insert(const T& t,int l,int r,vector<T>& v)
{
	if(t<v[l])
	{
		v.insert(v.begin()+l,t);
		return l;
	}
	else if(t>v[r])
	{
		v.insert(v.begin()+r+1,t);
		return r+1;
	}
	int i = (l + r) / 2;
	if(t == v[i])
		return -1;
	else if(t < v[i])
		return _insert(t,l,i-1,v);
	else
		return _insert(t,i+1,r,v);
}
template <class T>
int Insert(const T& t,vector<T>& v)
{
	if(v.size() == 0)
	{
		v.push_back(t);
		return 0;
	}
	else 
	{
		return _insert(t,0,v.size()-1,v);
	}
}
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -