Code của em thế này, nhưng không hiểu sao sau khi apply hàm vào thì stack nó lại empty vậy. Mọi người xem và góp ý giúp em, em cảm ơn.
void sortInsert(stack<int> st, int x)
{
if ((st.empty()==1) || (x > st.top()))
{
st.push(x);
return;
}
int temp = st.top();
st.pop();
sortInsert(st, x);
st.push(temp);
}
int main()
{
stack<int> st;
sortInsert(st, 5);
while (!st.empty())
{
cout << st.top() << " ";
st.pop();
}
return 0;
}
Chẳng những là hàm trên, em còn phát hiện ra bất kỳ hàm nào em viết theo cách trên đều không thể chạy được.
Nhưng hàm khai báo thế này thì nó có thể chạy được:
Tại sao vậy?




83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?