-3
A
回答
1
如果這是面試問題什麼的,你必須反正做到這一點,你可以做到這一點像,下面的代碼。來自std::stac
,並且過載operator[]
#include <iostream>
#include <algorithm>
#include <stack>
#include <exception>
#include <stdexcept>
template <typename T>
class myStack:public std::stack<T>
{
public:
T operator[](long index)
{
std::stack<T> temp;
T tempVal;
for(long i=0;i<index;++i)
{
if(this->template empty())
throw std::out_of_range("Index out of range");
tempVal = this->template top();
temp.push(tempVal);
this->template pop();
}
//T retVal = this->template top();
while(!temp.empty())
{
T tempVal = temp.top();
this->template push(tempVal);
temp.pop();
}
return tempVal;
}
};
int main(void)
{
myStack<int> st;
st.push(5);
st.push(1);
st.push(7);
st.push(9);
st.push(4);
std::cout<<"3rd Element :"<<st[3]<<std::endl;
return 0;
}
+0
如果這不是面試問題? – sehe
+0
如果它的真實世界的問題,我會建議不要使用隨機訪問堆棧或東西,而是使用向量。 –
相關問題
- 1. 添加多個堆棧板.........
- 2. 如何將元素添加爲html容器中的列堆棧?
- 3. 堆棧添加機器不添加,但掛起等待更多的參數
- 4. jQuery爲動態內容添加功能
- 5. 添加元素到堆棧
- 6. 如何添加更多的功能window.onunload?
- 7. jquery添加更多的點擊功能
- 8. 我如何添加更多的功能
- 9. 向drupal 7 openlayers添加更多功能
- 10. 爲什麼我不能將片段添加到後臺堆棧
- 11. 將更多容器添加到jframe
- 12. 添加更多功能後功能停止工作
- 13. 的OpenGL:矩陣堆棧的功能
- 14. 堆棧C++的打印功能
- 15. 轉化利用堆棧功能
- 16. 功能調用時的堆棧存儲
- 17. 卡堆棧功能不起作用
- 18. C中的堆棧跟蹤功能
- 19. 是否可以添加一些堆棧到一個大堆棧?
- 20. 爲什麼我的編譯器保留了比功能堆棧幀所需空間更多的空間?
- 21. 如何爲我的Joomla網站添加更多功能?
- 22. 如何爲我的hangman java代碼添加更多功能?
- 23. mySQL爲搜索功能添加功能
- 24. 如何增加堆棧的容量?
- 25. 添加更多內容:前
- 26. AWS堆棧更新錯誤:需要的功能:CAPABILITY_IAM]
- 27. 堆棧結構更新錯誤在推功能
- 28. 多幀,加載多個片段,不能控制後臺堆棧
- 29. 加載更多功能
- 30. GDB:添加堆棧的內容自動顯示
你不知道。這不是一個堆棧。如果你想要一個更強大的容器,使用不同的容器。像'std :: vector'。 –
有人可能選擇使用堆棧的原因之一是它暗示需要一些特定的操作,給讀者提供一些可能使用的算法的提示。它也意味着切換到堆棧的另一個實現的能力(例如,查看它執行得更好還是使用更少的內存)。如果你有某種超出預期界面的「功耗堆棧」,那麼你已經使這兩個影響無效,並會混淆代碼的評論者/維護者。 –
堆棧默認使用deques來實現它,但只提供5個要使用的功能。我可以爲堆棧製作通用容器嗎? –