Как установить значение по умолчанию в конструкторе итераторов? C ++ - PullRequest
1 голос
/ 16 декабря 2011

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

вот объявление:

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

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

Причина, когда я делаю: HashMap<TYPE, TYPE2>::const_iterator i;

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

Спасибо!

1 Ответ

3 голосов
/ 16 декабря 2011

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

 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();
...