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

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

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

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

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

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

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

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

Контейнер map содержащий векторы - C++
Доброго времени суток уважаемые! Подскажите пожалуйста можно ли организовать map&lt;vector, vector&gt; и правильно ли так поступать? Возможно...

Контейнер map, с двумя ключами? - C++
Добрый день всем! Всех с наступающим! Интересует такой вопрос , имеется ли в STL или Boost, контейнер аналогичный map, только с двумя...

Чтение из файла в контейнер map - C++
Вот есть структура struct Kino { int numb ; //номер кинотеатра string name; //название ктра vector&lt;string&gt; sv; //список...

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

Контейнер map, вывести содержимое на экран - C++
В файле содержится информация о некотором количестве людей в виде: имя адрес телефон. Необходимо по введенному имени вывести...

Контейнер map (нужны комментарии к коду) - C++
Может кто прокомментировать строки? Не могу разобрать, что делает программа. Буду благодарен ) #include &lt;iostream&gt; #include &lt;map&gt; ...

Отсортировать контейнер map по значению элементов - C++
Есть заполненный контейнер unordered_map (ну или просто map) Нужно отсортировать его по значению или сделать сортированный по значению...

Контейнер map. Выводит лишний символ - C++
Вот код. Шифр простой замены. В конце выводит последний символ 2 раза подряд. #include &lt;iostream&gt; #include &lt;fstream&gt; #include &lt;map&gt; ...

Контейнер map. Поиск по заданному ключу - C++
Нужно осуществить поиск по заданному ключу. Программа учета в интернет-магазине К примеру вводится название цена ...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
3144 / 1946 / 214
Регистрация: 13.01.2012
Сообщений: 7,438
27.02.2013, 15:59     Контейнер map ? #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;
vbloodv
22 / 22 / 0
Регистрация: 15.12.2012
Сообщений: 314
28.02.2013, 20:03  [ТС]     Контейнер map ? #3
Жесткий пример, но он ответил на 2 других вопроса заочно...
Ответ Создать тему
Опции темы

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