作者Dreamer77 (追夢)
站內C_and_CPP
標題[問題] iterator operator++ overloading
時間Tue Dec 21 15:47:48 2010
我的部份程式碼 如下 想加入iterator operator++的overloading
該怎麼加呢? 譬如++改成一次跳兩個
template <class K, class V>
class myhash
{
public:
vector<pair<K,V>> tab;
typedef typename vector<pair<K, V>>::iterator iterator;
iterator begin(){return tab.begin();}
iterator end(){return tab.end();}
...
...
};
如果除了operator++沒有要改其他的operator有沒有比較快的方式呢
除了完全重寫一個class iterator之外
謝謝
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 110.50.136.134
→ loveme00835:的容器, 但是是基於標準容器已有的功能之上, 直接繼承 12/21 17:00
→ loveme00835:可以直接使用父類的名稱, 但這裡最好用私有繼承, 不建 12/21 17:03
→ loveme00835:議你把迭代器的操作寫在myhash裡, 更不建議你為了方便 12/21 17:04
→ loveme00835:把++的功能改寫, 就像 1+2==3, 你改寫成 1+2==-1 不 12/21 17:06
→ loveme00835:是荒謬嗎? 這就是為啥內建型態的運算子不能被重載, 你 12/21 17:08
→ loveme00835:也不應該寫出跟標準庫迭代器行為差很多的東西, 不然就 12/21 17:09
→ loveme00835:另外寫幾個具名函式, 沒人會抱怨 12/21 17:10