LINUX.ORG.RU

Частный случай map


0

0

Что-то не врублюсь какую функцию для operator [] генерирует компилятор для случая map<double,string> например.
Я думал double& operator [] (string&), но вроде не то.
Никто не просветит ?
Прошу сильно не пинать,только начинаю разбираться с шаблонами.

★★★

stl_map.h:
---
mapped_type& operator[](const key_type& __k)
---

phoenix ★★★★
()

23.3.1.2 map element access

    T& operator[]( const key_type& x );

Returns: (*((insert(make_pair(x, T()))).first)).second

-----------

В твоем случае T это string, a key_type это double

aton
()
Ответ на: комментарий от aton

значит правильно думал :-)
Пытался реализовать итераторы в своём шуточном классе.

typedef Pair* iterator;
iterator begin();
iterator end();

при определении выдаёт какую-то тупость.
template<class T,class C> iterator Assoc<T,C>::begin()
{
return bla-bla;
}
error: expected constructor, destructor, or type conversion before &#8216;Assoc&#8217;

Pair определён в самом классе Assoc
struct Pair{
T name;
C value;
.....
}

Сдаётся мне что дело в typedef , но ничего придумать не могу,устал.
Спать надо.

kitov ★★★
() автор топика
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.