最贊回答 / qq_第天堂_03899060
#include?<iostream>#include?"Stack.h"?using?std::string;using?std::cout;using?std::endl;?/**?*?檢測字符串中的括號是否匹配?*?@param?str?待檢測匹配的字符串?*?@param?tps1?匹配的符號?*?@param?tps2?與tps1相匹配且順序一致的符號?*?@return?括號是否匹配的布爾值?*/bool?isPaired(string?str,?string?tps1,?stri...
2016-10-04
最新回答 / weixin_慕雪0498266
m_iTop是棧頂指針所在位置,而棧頂指針比最后進入棧數據的位置大1(棧頂指針指向棧最后一個元素后面一個位置),m_iTop--則表示棧中最后一個元素的位置
2016-09-16
最贊回答 / MAKER_01
應該是棧存儲和數組存儲一樣,首地址為0,新增一個元素后m_iTop+1,指向下一個位置,元素存在位置0的內存中。因此第n個元素位置和對應的m_iTop=n指向的位置不同
2016-08-03
最贊回答 / 黑巫師0
m_pBuffer = new char[size];? 使用new動態申請了size個char類型大小的空間,如果把char換成類名時,就是申請size個類名大小的空間。但只要是給類實例化對象申請空間,就要調用類的構造函數,而所寫的構造函數如果是Coordinate(int x , int y );? 不是默認構造函數,參數沒有默認值,在實例化對象時,就必須給賦予x,y值,否則就會報錯,而使用new運算符申請多個內存時,無法為每個對象都賦初值x,y。那樣就會報錯。因此就需要將構造函數改為有默認值的構造函...
2016-07-21
最新回答 / 翔紀念83574491
說一下出桟操作的,如果前面if語句滿足要求的話,程序就直接return,后面的就不會執行,如果不滿足要求的話,程序就會跳過if語句,執行后面的return語句,因此push那個操作是沒有問題的
2016-07-14
最贊回答 / 我呵呵了
如果if(!pNeedStack->pop(currentNeed)){currentNeed=0;} ?括號里面的條件是false,就相當于!pNeedStack->pop(currentNeed) 這句話是錯的,注意前面的“!”,這句話要是錯的,那么pNeedStack->pop(currentNeed) 就為真, 這句話本身也是一個出棧的操作,所以說,如果是真的話,會有東西出棧的,存到了currentNeed中。
2016-05-28
最贊回答 / 慕村3311326
這據說是VC的一個經典BUG。和namespace也有關.??只要含有using namespace std; 就會提示友員函數沒有訪問私有成員的權限。?解決方法:去掉using namespace std;換成更小的名字空間。 ?using std::endl; using std::cout;using std::ostream;或者將重載運算符函數放在Coordinate類中去定義。親測兩種均有效
2016-05-27