首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

一路使用了数组,list,stack的题目超出内存

2013-12-02 
一道使用了数组,list,stack的题目超出内存#include iostream#include list#include stackusing name

一道使用了数组,list,stack的题目超出内存
#include <iostream>
#include <list>
#include <stack>
using namespace std;

int main(){
int numoftrain, i, temp, num_test;
    //列车进出的序列string
    list<int>outtrain;
    stack<int>imitate;

    cin >> num_test;
    while(num_test--){
  int counter = 0;
      string instr, outstr;
      bool flag[20];//用于记录出入顺序

  cin >> numoftrain;//输入列车数目
      cin >> instr;
      cin >> outstr;

     for (i = 0;i < numoftrain; i++){
         outtrain.push_back(outstr[i]);
     }

      for (i = 0;i < numoftrain; i++){
          imitate.push(instr[i]);
          flag[counter] = false;//push就是IN
          counter++;
          while((!outtrain.empty())&&(!imitate.empty())&&(outtrain.front() == imitate.top() )){
        outtrain.pop_front();
        imitate.pop();
        flag[counter] = true;//每次pop就是OUT
        counter++;
          }
      }
      if (imitate.empty()){
     cout << "Yes." << endl;
     for(i = 0; i < counter; i++){
     if(flag[i])
    cout << "out" << endl;
     else
    cout << "in" << endl;
     }
     cout << "FINISH" << endl;
      }
      else
     cout << "No." << endl << "FINISH" << endl;

      while((!outtrain.empty())||(!imitate.empty())){
            outtrain.pop_front();
            imitate.pop();
      }
    }
//system("pause");
return 0;
}

怎么会超出内存,每次都清空了,求解!
[解决办法]
第一,介绍下你代码的意图;
第二,排版;
第三,是否有尝试跟踪代码或者想办法narrow scope;

话说大家都看了一天“糟糕”的代码了(工作),实在没有兴趣。

热点排行