我在C++工作.我正在研究一种方法来改变堆栈的最大容量,我对我得到的错误感到困惑.以下是我的方法.
void Stack::setCapacity(unsigned newCapacity){
if(newCapacity< this->getSize()){
throw StackException("setCapacity()",
"the size is larger than the desired capacity");
} else {
if(newCapacity != myCapacity){
Item * tempArray = new Item[newCapacity];
if(newCapacity < myCapacity){
for(unsigned i=0; i<newCapacity;i++){
tempArray[i] = myArray[i];
}
} else if (newCapacity > myCapacity) {
for(unsigned i=0; i<myCapacity; i++){
tempArray[i] = myArray[i];
}
}
for(unsigned i=0; i<newCapacity; i++){
myArray[i] = tempArray[i];
}
delete tempArray;
}
myCapacity = newCapacity;
}
}
Run Code Online (Sandbox Code Playgroud)
我还编写了一个测试方法来测试我的setCapacity()方法是否有效.
void StackTester::setCapacityTest() {
cout << "- setCapacity... " << …Run Code Online (Sandbox Code Playgroud)