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

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

Войти
Регистрация
Восстановить пароль
 
Pari
40 / 3 / 0
Регистрация: 24.11.2013
Сообщений: 139
#1

Возможность вставки в map массива - C++

10.10.2015, 12:23. Просмотров 250. Ответов 5
Метки нет (Все метки)

подскажите пожалуйста, могу ли я сделать значением 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
//Разработать программу, которая хранит информацию
//о школьниках и их оценках за 5 экзаменов в виде отображения(map).Каж -
//дый элемент отображения должен иметь следующий вид : ключ – фамилия
//ученика, значение – набор оценок за пять экзаменов.Реализовать вывод на
//экран среднего балла по всем экзаменам для каждого ученика.
#include "stdafx.h"
#include <iostream>
#include <iterator>
#include <map>
#include <string>
using namespace std;
 
void display(map <string, int[5]> p)
{
    for (auto it = p.begin(); it != p.end(); ++it)
    {
        int sum = 0;
        cout << (*it).first << " : ";
        for (int i = 0; i < 5; i++)
        {
            sum += (*it).second[i];
            cout << sum / 5;
        }
    }
}
 
void main()
{
    map <string, int[5]> pupil = 
    { 
        {"Jack", {1, 2, 3, 4, 5}},
        {"Sara", {2, 3, 4, 5, 6}},
        {"Gary", {4, 4, 2, 2, 6}},
        {"Luisa", {5, 5, 1, 1, 2}}
    };
    display(pupil);
}
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
10.10.2015, 12:23     Возможность вставки в map массива
Посмотрите здесь:

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

Возможность блокировки вставки текста или как правильно вставлять текст? - C++
Добрый день. Простите что забираю у вас время, проблема такая: имеется простое задание - пользователь копирует текст, допустим n-ое...

Обращение к элементам vector, который находится в map, находящийся в map - C++
Всем добрый день! Имеется такой контейнер. Как обращаться к элементам вектора и как пушбэчить его? map &lt;int,map&lt;int,vector&lt;int&gt; &gt;...

Объявление шаблона ассоциативного массива map - C++
Необходимо объявить шаблон map таким образом,чтобы в map записывалось второе значение согласно шаблону.Например,у нас пары значений...

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

Метод, возвращающий данные по имеющемуся ключу массива MAP - C++
Исходный код: #include &lt;string&gt; #include &quot;map.h&quot; class Recipe{ protected: AnsiString name_recipe; //название...

Сортировка массива по возрастанию неоптимизированным алгоритмом вставки - C++
Я решаю задачу. Прошу помочь. Что не так в моём коде ? Условие задачи: Дается массив целых чисел. Отсортируйте массив по...

Эффективные алгоритмы вставки и удаления элемента из массива - C++
Необходимы два эти алгоритма. + Всем в карму

Как реализовать код без применения ассоциативного массива (map)? - C++
Имеется такой код. Как можно его изменить, не использую массив map? #include &lt;iostream&gt; #include &lt;map&gt; #include &lt;string&gt; #include...

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


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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
6321 / 5905 / 1913
Регистрация: 18.12.2011
Сообщений: 15,181
Завершенные тесты: 1
10.10.2015, 12:34     Возможность вставки в 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
28
29
30
31
32
33
34
35
36
37
38
39
40
#include <iostream>
//#include <iterator>
#include <map>
#include <string>
using namespace std;
struct arr
{
    int mass[5];
};
typedef map<string,arr> mm;
 
void display(mm p)
{
    for (mm::iterator it = p.begin(); it != p.end(); ++it)
    {
        int sum = 0;
        cout << (*it).first << " : ";
        for (int i = 0; i < 5; i++)
        {
            sum += (*it).second.mass[i];
        }
        cout << sum /5.0<<endl;
    }
}
 
int main()
{
    mm pupil;
    arr  a={1, 2, 3, 4, 5};
    pupil["Jack"]=a;
    for(int i=0;i<5;i++)
        a.mass[i]=i+1;
    pupil["Order"]=a;
    for(int i=0;i<5;i++)
        a.mass[i]=1;
    pupil["Ones"]=a;
    display(pupil);
    system("pause");
    return 0;
}
Pari
40 / 3 / 0
Регистрация: 24.11.2013
Сообщений: 139
10.10.2015, 12:42  [ТС]     Возможность вставки в map массива #3
zss, большое спасибо. пока что не до конца понимаю что происходит в main, но попытаюсь разобраться... кажется, надо садиться за stl
S_el
2092 / 1599 / 306
Регистрация: 15.12.2013
Сообщений: 6,427
10.10.2015, 13:14     Возможность вставки в map массива #4
Pari, если ваш компилятор поддерживает C++11 вместо оборачивания в структуру можно использовать std::array<>:

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
#include <iostream>
#include <map>
#include <string>
#include <array>
 
using mm = std::map<std::string,std::array<int,5>>;
 
void display(const mm &p)
{
    for(const auto &el:p)
    {
        double sum = 0;
        std::cout << el.first << " : ";
        for(const auto &p:el.second)
            sum += p;
        std::cout << sum /5.0<<std::endl;
    }
}
 
int main()
{
    mm pupil;
    std::array<int,5> a={1, 2, 3, 4, 6};
    pupil["Jack"]=a;
    for(int i=0;i<5;i++)
        a[i]=i+1;
    pupil["Order"]=a;
    for(int i=0;i<5;i++)
        a[i]=1;
    pupil["Ones"]=a;
    display(pupil);
 
    return 0;
}
http://ideone.com/Ff9hKd
gru74ik
Модератор
Эксперт CЭксперт С++
4102 / 1747 / 194
Регистрация: 20.02.2013
Сообщений: 4,853
Записей в блоге: 21
10.10.2015, 14:33     Возможность вставки в map массива #5
Pari, вернулись с джавы на С++?
Pari
40 / 3 / 0
Регистрация: 24.11.2013
Сообщений: 139
10.10.2015, 17:30  [ТС]     Возможность вставки в map массива #6
S_el, да, поддерживает, VS2015
спасибо за такой вариант!

Добавлено через 55 секунд
gru74ik, ну, как вернулась) в универе продолжают долбить нас плюсами, с джавой придется пока повременить.
Yandex
Объявления
10.10.2015, 17:30     Возможность вставки в map массива
Ответ Создать тему
Опции темы

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