Форум программистов, компьютерный форум CyberForum.ru
Наши страницы

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
#1

Контейнер map ? - C++

27.02.2013, 14:58. Просмотров 577. Ответов 2
Метки нет (Все метки)

Не совсем удается разобраться Не удается разобраться с ассоциативными контейнерами !
Как выглядит объявление функции в псевдокоде?
Что делает std::less<T> ?
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.02.2013, 14:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Контейнер map ? (C++):

Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std::map? - C++
Здравствуйте. Возможно ли создать контейнер std::map, в котором в качестве значения была бы ссылка на std map? Например: std::map...

контейнер map - C++
Помогите, пожалуйста дописать программу. Определите карту, в которой ключом является фамилия семьи, а значением вектор, который содержит...

Контейнер map - C++
Здравствуйте, работаю с контейнером map, анализирую текст, получаю записи типа &quot;слово: число его появлений в тексте&quot;. Хотелось бы вывести...

Контейнер map - C++
Стоит задача реализовать контейнер map. Вопрос возникает при реализации итератора для этого контейнера. В итераторе должны быть реализованы...

Контейнер map - C++
в программе используется ассоциативный массив, идентификатором которого являются символы проблема в том что появляется элемент с...

Контейнер map - C++
Cоздать ассоциативный список имен (ключей), телефонов. Осуществить поиск по именам. Дополнить его данным адрес. Добавить возможности...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
vxg
Модератор
3162 / 1965 / 220
Регистрация: 13.01.2012
Сообщений: 7,523
27.02.2013, 15:59 #2
куски которые возможно натолкнут на мысли
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
template <class type>
class factory
{
public:
    std::map<unsigned, type *> objs;
 
    virtual ~factory(void)
    {
        for
        (
            std::map<unsigned, type *>::iterator i = objs.begin();
            i != objs.end();
            i++
        )
            delete i->second;
    }
 
    void insert(type * const obj)
    {
        objs.insert(std::map<unsigned, type *>::value_type(obj->type_id(), obj));
    }
    type *blank(const unsigned type_id)
    {
        type *p = objs.find(type_id)->second;
        return p? p->blank() : 0;
    }
};
это фабрика создающая объект по идентификатору типа. использовал для считывания объектов из файла. перед считыванием фабрика заполнялась образцами объектов. делалось это для того что бы по этим образцам создавать чистые копии (объекты могут создавать чистую копию через вызов blank).
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
    polyline_factory = new factory<polyline>;
    polyline_factory->insert(new polyline);
    polyline_factory->insert(new rect);
    polyline_factory->insert(new triangle);
    polyline_factory->insert(new trapezium);
    polyline_factory->insert(new line);
    polyline_factory->insert(new point);
    polyline_factory->insert(new circle);
    polyline_factory->insert(new ellipse);
    polyline_factory->insert(new arc);
    polyline_factory->insert(new txt);
 
    READ_UINT(objs_size)
 
    for (int i = 0; i < objs_size; i++)
    {
        READ_UINT(type_id)
 
        polyline *p = polyline_factory->blank(type_id);
        if (!(p && p->load(is)))
        {
            if (p) printf_ex("load error (obj id=%i)\n", p->id);
            else printf_ex("load error obj=0\n");
            return false;
        }
        us_objs->insert(p);
    }
если бы вместо ключа стандартного типа unsigned я бы использовал какой-нибудь свой экзотический тип мне нужно было бы расширять шаблон функцией сравнения что бы он мог при вставке и поиске элементов корректно проходить по списку как то так (на примере set):
C++
1
2
3
4
5
6
7
8
9
10
11
class less_for_layer:
    public std::binary_function<layer *, layer *, bool>
{
public:
    bool operator () (layer * const x, layer * const y) const;
};
bool less_for_layer::operator () (layer * const x, layer * const y) const
{
    return x->id < y->id;
}
std::set<layer *, less_for_layer> *ls;
1
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
28.02.2013, 20:03  [ТС] #3
Жесткий пример, но он ответил на 2 других вопроса заочно...
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
28.02.2013, 20:03
Привет! Вот еще темы с ответами:

Контейнер map<int, some*> - C++
доброго времени суток. Никак не могу разобраться с проблемой. суть такая. Хочу в классе создать статический контейнер с адресами...

Map контейнер сортировка - C++
Добрый день. Собственно необходимо вывести отсортированный мап контейнер по числу гласных в слове. Вводить строку и выводить мап...

Перевернуть контейнер map? - C++
Здравствуйте. Нужно отсортировать map по убыванию. Сделать что-то вроде прохода от map.end() до map.begin Спасибо.

Ассоциативный контейнер типа map - C++
Привет! Помогите пожалуйста найти ошибку. Программа с Ассоциативным контейнером типа map&lt;string, int&gt;. Прога подсчитывает колличество...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru