[問題] template stack

看板C_and_CPP (C/C++)作者 (好人超)時間16年前 (2010/03/18 14:52), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串1/4 (看更多)
遇到的問題: (題意請描述清楚) 我想要寫出這樣的東西: int main() { MyStack default; // 容器使用 vector<int> MyStack<double> dstack; // 容器使用 vector<double> MyStack<string, list> dlstack; // 容器使用 list<string> } 寫一個自定義的 stack, 裡面用 STL container 來裝資料 如果完全不指定 template parameter, 則預設為 vector<int> 可以指定一個 template parameter T, 則 container 變為 vector<T> 也可以藉由再加上第二個 parameter, 進一步的改變 container 不過我不知道要怎麼去宣告這樣的 template class... 目前只能想到這個地步 template < ???? > class MyStack { public: void push(T data) { container.push_back(data); } void pop(); { container.pop_back(); } T top(); private: Container container; }; -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.117.171.46

03/18 14:59, , 1F
template<class T=int, class Container=vector<T> >
03/18 14:59, 1F

03/18 14:59, , 2F
不過這樣一來全部用預設要寫成 MyStack<>
03/18 14:59, 2F

03/18 15:00, , 3F
你的第三個也要寫成 MyStack<string, list<string> >
03/18 15:00, 3F

03/18 15:01, , 4F
一樓的寫法我試過 問題就如你二三樓的補充 我希望避免
03/18 15:01, 4F

03/18 15:01, , 5F
因此才想問問看有沒有更好的寫法 XD
03/18 15:01, 5F
文章代碼(AID): #1BeSsSv7 (C_and_CPP)
討論串 (同標題文章)
文章代碼(AID): #1BeSsSv7 (C_and_CPP)