Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/155.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 这个';对于';反向堆栈循环影响前堆栈?(使用堆栈时平衡支架问题)_C++_Data Structures_Stack_Brackets - Fatal编程技术网

C++ 这个';对于';反向堆栈循环影响前堆栈?(使用堆栈时平衡支架问题)

C++ 这个';对于';反向堆栈循环影响前堆栈?(使用堆栈时平衡支架问题),c++,data-structures,stack,brackets,C++,Data Structures,Stack,Brackets,我需要分开一系列括号来检查它是否平衡。我的方法是将序列分成两个相等的部分,并将它们推到不同的堆栈中。 当我试图将序列的第二部分推入反向堆栈时,问题就出现了。它正在影响第一个堆栈。我不知道为什么会发生这种情况,如果我删除代码的第二个半序列部分,第一个堆栈工作正常。下面是代码,我还将附加输出,无论是否具有第二堆栈的效果 #包括 #包括 使用名称空间std; 字符前_堆栈[]={}; char rev_stack[]={}; int topf=0,topr=0; 无效推送(字符); 无效推送(字符);

我需要分开一系列括号来检查它是否平衡。我的方法是将序列分成两个相等的部分,并将它们推到不同的堆栈中。 当我试图将序列的第二部分推入反向堆栈时,问题就出现了。它正在影响第一个堆栈。我不知道为什么会发生这种情况,如果我删除代码的第二个半序列部分,第一个堆栈工作正常。下面是代码,我还将附加输出,无论是否具有第二堆栈的效果

#包括
#包括
使用名称空间std;
字符前_堆栈[]={};
char rev_stack[]={};
int topf=0,topr=0;
无效推送(字符);
无效推送(字符);
int main()
{
字符串序列;
cin>>序列号;
int len=序列长度();

对于(int i=0;i您的数组中有0个项,因此当您执行
front\u stack[0]
front\u stack[1]
,您正在覆盖其他一些变量

如果要将数据存储在数组中,则需要使其实际包含一些项,例如
char front\u stack[100]
char rev\u stack[100]


顺便说一句,在这个程序中你不需要
={}

你的数组中有0个项目,所以当你执行前\u堆栈[0]时,前\u堆栈[1],…您正在覆盖其他变量。@user253751感谢您的响应。但我使用的是不同的堆栈,当我不使用第一个堆栈时,如何覆盖,以及为什么前堆栈中只有最后两个元素受到影响。请解释一下,我不明白这一点。@Sumanthmandalapu Use。@user253751我更改为前_堆栈[100]和rev_stack[100],正如您所提到的,错误得到了解决。您的裁剪示例(裁剪很好!)不再使用任何堆栈功能。因此,在不参考堆栈的情况下重新构建问题框架是有意义的(并且可能在过程中获得一些见解)。