2011-12-15 2 views
1

Я делаю конструктор для моего итератора, но я не могу понять, что это значение по умолчаниюКак установить значение по умолчанию в конструкторе итераторов? C++

здесь это объявление:

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

Это вектор карты, так что мой итератор будет итератор карты. Каково было значение по умолчанию?

Потому что когда я делаю: HashMap<TYPE, TYPE2>::const_iterator i;

Он говорит, что у меня нет подходящего конструктора по умолчанию.

Спасибо!

+0

Можете ли вы объяснить, что вы пытаетесь здесь сделать? Зачем вам значение по умолчанию для этого конструктора? Чего вы хотите добиться от этого? Что-то выглядит странно, но контекста мало. – Flexo

+0

Что должен делать этот конструктор? Имеет ли смысл параметр иметь значение по умолчанию? –

+0

@awoodland Я отредактировал мой вопрос. Прошу прощения – Marc

ответ

3

Не вдаваясь в то, почему вам нужно будет значение по умолчанию, я бы предложил использовать значение по умолчанию карты итератора (который является недействительным итератора)

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

Edit:

Учитывая ваше редактирование, кажется, что наиболее логичным в вашей ситуации было бы перегрузить ваш конструктор. Имейте две перегрузки, которые не принимают ничего (делайте то, что вы считаете лучшим в этом конструкторе) и ваш оригинальный. Это должно сделать трюк :)

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

Спасибо !!! Я чувствую себя abit глупым lol – Marc

Смежные вопросы