2011-12-15 134 views
1

我做了我的迭代器構造函數,但我不明白什麼是默認值如何在迭代器的構造函數中設置默認值? C++

這裏的聲明:

const_iterator(typename map<TYPE, TYPE2>::const_iterator = ?????);

這是圖的矢量,所以我的迭代器會一個映射迭代器。 默認值是什麼?

因爲當我做: HashMap<TYPE, TYPE2>::const_iterator i;

它說我有沒有合適的默認構造函數。

謝謝!

+0

你能解釋一下你想在這裏做什麼?爲什麼你需要這個構造函數的默認值?你想從中獲得什麼?東西看起來很奇怪,但沒有太多上下文。 – Flexo 2011-12-15 21:33:15

+0

這個構造函數應該做什麼?參數是否有默認值是否有意義? – 2011-12-15 21:34:25

回答

3

不進入你爲什麼會需要一個默認值,我會建議使用地圖迭代器的默認值(這是一個無效的迭代器)

typedef typename map<TYPE, TYPE2>::const_iterator map_citer; 
const_iterator(map_citer param = map_citer()); 
           //^^^^^^^^^^^ 

編輯:

考慮到你的編輯,看起來你的情況最符合邏輯就是重載你的構造函數。有兩個重載,一個不需要任何東西(做你認爲最好的構造函數)和你的原始的重載。這應該做的伎倆:)

const_iterator(typename map<TYPE, TYPE2>::const_iterator); 
const_iterator();