当前位置: 首页>>代码示例>>C++>>正文


C++ Stack::GetKey方法代码示例

本文整理汇总了C++中Stack::GetKey方法的典型用法代码示例。如果您正苦于以下问题:C++ Stack::GetKey方法的具体用法?C++ Stack::GetKey怎么用?C++ Stack::GetKey使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在Stack的用法示例。


在下文中一共展示了Stack::GetKey方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Record

string Postfix::Record(const string& infstring)const
{

	if (!infstring.length())
		throw
		exception("String is empty");
	Bracket(infstring);
	int tmp1 = Line(infstring);
	if (tmp1)
		throw
		exception("You have entered incorrect string");
	map <char, int> operations;
	operations['*'] = 3;
	operations['/'] = 3;
	operations['+'] = 2;
	operations['-'] = 2;
	operations['('] = 1;
	Stack<char> result;
	Stack<char> operationsstack;
	char temp;
	for (int i = 0; i < infstring.length(); i++)
	{
		if (infstring[i] == ' ')
			continue;
		temp = infstring[i];
		if (operations.count(temp))
		{
			if ((!operationsstack.IsEmpty()) && (operations[temp] <= operations[operationsstack.GetKey()]) && (temp != '('))
				while ((!operationsstack.IsEmpty()) && (operations[temp] <= operations[operationsstack.GetKey()]))
					result.Push(operationsstack.Pop());
			operationsstack.Push(temp);
			continue;
		}
		if (((temp >= 'a') && (temp <= 'z')) || ((temp >= 'A') && (temp <= 'Z')))
		{
			result.Push(temp);
			continue;
		}
		if (temp == ')')
		{
			char t = '0';
			while ((!operationsstack.IsEmpty()) && (t != '('))
			{
				t = operationsstack.Pop();
				result.Push(t);
			}
			if (t == '(')
				result.Pop();
			continue;
		}
		throw 
			exception("You have entered anavailable symbol");
	}
	while (!operationsstack.IsEmpty())
		result.Push(operationsstack.Pop());
	if (result.IsEmpty())
		throw 
			exception("You haven't entered any expression");
	string resultstring = "";
	while (!result.IsEmpty())
		operationsstack.Push(result.Pop());
	while (!operationsstack.IsEmpty())
		resultstring += operationsstack.Pop();
	return resultstring;
}
开发者ID:anna-kulikova,项目名称:lab3-postfix,代码行数:65,代码来源:postfix.cpp


注:本文中的Stack::GetKey方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。