Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.94/18: Рейтинг темы: голосов - 18, средняя оценка - 4.94
0 / 0 / 0
Регистрация: 20.06.2019
Сообщений: 13
1

Реализация контейнера по типу map

20.06.2019, 18:47. Показов 3698. Ответов 1
Метки map (Все метки)

Необходимо создать пользовательский класс по типу map, для реализации "словаря".
Можете помочь с реализацией или подсказать, где неправильно:

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
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
template<class T1, class T2>
class MyMap
{
    T1* key;
    T2* value;
    size_t _size;
    size_t _length;
 
private:
    void resize(size_t new_size) 
    {
        _size = new_size;
        key = static_cast<T1*>(realloc(key, _size * sizeof(T1)));
        value = static_cast<T2*>(realloc(value, _size * sizeof(T2)));
    }
public:
    MyMap()
    {
        _size = 4;
        _leghth = 0;
        key = new T1[_size];
        value = new T2[_size];
    }
 
    ~MyMap()
    {
        delete[] key;
        delete[] value;
    }
 
    void emplace(const T1 _key, const T2 _value)
    {
        if (_length + 1 > _size) 
            resize(_size * 2);
 
        if (key_comp)
            key[_length++] = _key;
        else
            cout << "Такое слово уже используется.\n"
 
        if(value_comp)
            value[_length++] = _value;
        else        
            cout << "Такое слово уже используется.\n"
    }
 
    bool key_comp(T1 _key) 
    {
        for (int i = 0; i < _size; i++)
        {
            if (key[i] == _key)
                return true;
            else
                return false;
        }
    }
 
    bool value_comp(T2 _value) 
    {
        for (int i = 0; i < _size; i++)
        {
            if (value[i] == _value)
                return true;
            else
                return false;
        }
    }
 
    T2 find(T1 _key) 
    {
        for (int i = 0; i < _size; i++)
            if (key[i] == _key)
                return value[i];
 
        return NULL;
    }
 
    template <class T1, class T2>
    friend ostream& operator<<(ostream& out, MyMap<T1, T2>& it)
    {
        out.clear();
        for (auto& value : it)
        {
            out << value;
            if (&value < it.end() - 1)
                out << ' ';
        }
        return out;
    }
 
    template <class T1, class T2>
    friend void operator>>(istream& in, MyMap<T1, T2>& it)
    {
        T2 _value;
        while (in >> _value)
        {
            it.emplace(_value);
            if (in.peek() == '\n')
                break;
        }
    }
};
0

Помощь в написании контрольных, курсовых и дипломных работ здесь.

Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
20.06.2019, 18:47
Ответы с готовыми решениями:

Из каждого элемента контейнера map вычесть среднее арифметическое контейнера
Контейнер map, тип элементов Int 3.Из каждого элемента вычесть среднее арифметическое контейнера

Вывод контейнера map
Подскажите пожалуйста как вывести на экран значение карты. Программа такая: надо создать карту, где...

Использование контейнера map
Доброе утро) Никак не пойму как пользоваться контейнером map и зачем он, вообще, нужен?! Скажем...

Копирование содержимого контейнера map
Итак, есть контейнер map&lt;string,fsElem *&gt;, где fsElem - базовый класс, также есть наследуемый от...

1
6738 / 4537 / 1839
Регистрация: 07.05.2019
Сообщений: 13,725
Записей в блоге: 1
21.06.2019, 08:56 2
Цитата Сообщение от Keory Посмотреть сообщение
Необходимо создать пользовательский класс по типу map, для реализации "словаря".
Можете помочь с реализацией или подсказать, где неправильно:
Здесь нужен
C++
1
std::vector<std::pair<T1, T2>>
. Для вставки и поиска нужно использовать std::upper_bound
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.06.2019, 08:56

Удалить элементы из контейнера map
#include &lt;iostream&gt; #include &lt;map&gt; using namespace std; int main() { map&lt;int, int&gt; map1; ...

Объясните код заполнения контейнера map
1) помогите разобраться в коде, вот отрывок: for(i=0; i&lt;m; i++) { mymap.insert(...

Вывод данных контейнера map на экран
Приветствую. Столкнулся с проблемой вывода на экран Memo информации о введенных в контейнер map...

Чтение из файла и заполнение контейнера map
Есть такое задание: дан файл,в котором записаны имена студентов.Напротив каждого имени - их...


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

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

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