最新回答 / BingBing_Elf
首先,我覺得你可能沒明白棧頂元素的位置,它的位置一直是在一個空位置,這樣才可以有位置來存儲新的進(jìn)棧元素,這也是老師說為什么m_iTop這個角標(biāo)和元素個數(shù)相等的原因,也就是說,當(dāng)你元素為5個時,存儲的角標(biāo)為0-4,但是你的m_iTop在5的位置。所以,在空棧的情況下,是不是首位置就應(yīng)該是空的,即它的角標(biāo)為0,當(dāng)一個元素入棧后,就可以插入到角標(biāo)為m_iTop的位置了,插入后一定要進(jìn)行m_iTop++,讓指針指向下一個位置,以便下一個元素的入棧。希望可以幫到你(????)
2017-07-07
最贊回答 / 我是一只小蝸牛
因為C++ 默認(rèn)的拷貝構(gòu)造函數(shù)是淺拷貝,咋們案例是值這種東西,所以可以直接賦值;但是如果涉及到指針,那么用淺拷貝容易造成內(nèi)存泄漏,因為你的地址是一樣的,釋放兩次會出現(xiàn)內(nèi)存泄漏,這時候你就要自己實現(xiàn)拷貝構(gòu)造函數(shù)了,而不能使用默認(rèn)的拷貝構(gòu)造函數(shù)
2017-06-03
最新回答 / 晨墨_V
因為你是先入棧再賦值need。第一次循環(huán)的時候,need==0,所以直接need = ']',pNeed里有],第二次循環(huán)need==),然后滿足條件。case'[':if (need != 0){cout << "第" << i + 1 << "次入另一個棧:";pNeed->push(need);cout << need<<endl;}need = ']';break;
2017-04-03
最新回答 / qq_狼_26
數(shù)據(jù)結(jié)構(gòu)主要講的是算法,具體用不同的編程語言實現(xiàn)出來肯定是不一樣的啊。語法規(guī)則不一樣而已。
2017-03-07
最贊回答 / Alienware01
#include<iostream>using std::ostream;using std::istream把using namespace std;換成上面代碼 vc6不兼容問題
2017-02-14
最贊回答 / T_h_e_A_noends
我明白了 ?elem是一個引用,elem = stack[top];雖然int elem = 0;但是其實執(zhí)行代碼時elem就是top了。
2017-02-10
最贊回答 / 慕粉3829398
因為頭文件主要用于函數(shù)和變量的聲明,本身無法編譯。雖然可以在頭文件中直接寫上代碼的實現(xiàn),但該部分代碼只有在程序運行的時候才能夠被調(diào)用,無法單獨編譯,所以在定義類的時候,通常會拆成"*.h"和"*.cpp"兩個文件來保存
2017-01-12
最贊回答 / brilliantShirley
成員函數(shù)和數(shù)據(jù)成員一樣都是屬于類的成員。可以通過實例化類來調(diào)用成員函數(shù)。而普通的全局函數(shù)和類中的成員函數(shù)不同,不需要對象就可以調(diào)用。
2017-01-01