27.03.2017, 09:40 [+3 UTC]
в нашей команде: 1 868 чел. | участники онлайн: 9 (рекорд: 21)

:: РЕГИСТРАЦИЯ

:: консультации

:: задать вопрос

:: все разделы

:: правила

:: новости

:: участники

:: доска почёта

:: форум

:: блоги

:: поиск

:: статистика

:: наш журнал

:: наши встречи

:: наша галерея

:: отзывы о нас

:: поддержка

:: руководство

Версия системы:
7.41 (25.02.2017)

Общие новости:
23.02.2017, 09:51

Форум:
26.03.2017, 18:27

Последний вопрос:
27.03.2017, 05:09

Последний ответ:
27.03.2017, 08:48

Последняя рассылка:
26.03.2017, 19:45

Писем в очереди:
0

Мы в соцсетях:

Наша кнопка:

RFpro.ru - здесь вам помогут!

Отзывы о нас:
29.11.2009, 16:28 »
Озерова Елена Сергеевна
Огромное спасибо эксперту Лыскову Игорю Витальевичу! Добросовестно писать коды, да еще с комментариями - большое дело. А когда ещё все правильно работает - вдвойне приятно. Вами должны гордиться! [вопрос № 174457, ответ № 257050]
05.05.2011, 21:48 »
lamed
Андрей Владимирович, спасибо за большую работу. С уважением [вопрос № 183056, ответ № 267003]
04.08.2010, 07:23 »
Алексей Леонов
Спасибо за исчерпывающий ответ [вопрос № 179659, ответ № 262725]

РАЗДЕЛ • С / С++

Создание программ на языках C и C++.

[администратор рассылки: Андрей Кузнецов aka Dr_Andrew (Старший модератор)]

Лучшие эксперты в этом разделе

Коцюрбенко Алексей aka Жерар
Статус: Мастер-Эксперт
Рейтинг: 646
Лысков Игорь Витальевич
Статус: Старший модератор
Рейтинг: 453
Асмик Гаряка
Статус: Советник
Рейтинг: 246

Перейти к консультации №:
 

Консультация онлайн # 190266
Раздел: • С / С++
Автор вопроса: User194586 (Посетитель)
Отправлена: 10.12.2016, 20:16
Поступило ответов: 1

Уважаемые эксперты! Пожалуйста, ответьте на вопрос:

Помогите вывести максимальный элемент "map" через max_element. Почему выдает ошибку...

#include <iostream>
#include <cstdlib>
#include <map>
#include <iterator>
#include <algorithm>
#include <C:\prog\11\2\Time.h>
using namespace std;
typedef map<int, Time>TMap;//определяем тип для работы со словаре
typedef TMap::iterator it;
Time avg;
//функция для формирования словаря
TMap make_map(int n)
{
	TMap m;//пустой словарь
	Time a;
	for(int i=0;i<n;i++)
	{
     cin>>a;
	//создаем пару и добавляем ее в словарь
	m.insert(make_pair(i,a));
	}
	return m ;//возвращаем вектор как результа работы функции
}


//функция для печати словаря
void print_map(TMap m)
{
	for(int i=0;i<m.size();i++)
	cout<<i<<" - "<<m[i]<<" "<<endl;
}
Time srednee(TMap m)
{
	Time s=m[0];//первый элемент – начальное значение суммы
	//перебор словаря
	for(int i=1;i<m.size();i++)
	s=s+m[i];
	int n=m.size();//количество элементов в словаре
	return s/n;
}
void upd(Time&t)
{
	t=t+avg;
}
int main(int argc, char *argv[])
{
	TMap m;
	int n;
    cout<<"-----------------map.begin------------------"<<endl;
	cout<<"Enter n=";
	cin>>n;
    m=make_map(n);
	print_map(m);
	cout<<"Zadanie 1.Max element insert:"<<endl;
	//поставили итератор i на максимальный элемент
	it r=max_element(m.begin(),m.end());
	//int rr=(*r);
	//int rr=(*r).second;
	cout<<"Max element="<<*r<<endl;
	cout<<"Zadanie 3.Update:"<<endl;
    avg=srednee(m);//нашли среднее арифметическое вектора
	cout<<"AVG="<<avg<<endl;
	//for_each(m.begin(),m.end(),upd); // для каждого элемента добавили среднее
    cout<<"-----------------map.end------------------"<<endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}

-----
 Прикрепленный файл (кликните по картинке для увеличения):

Состояние: Консультация закрыта

Ответ # 274444 от solowey (5-й класс)

Здравствуйте, User194586!

int main(int argc, char *argv[])
{
    TMap m;
    int n;
    cout << "-----------------map.begin------------------" << endl;
    cout << "Enter n=";
    cin >> n;
    m = make_map(n);
    print_map(m);
    cout << "Zadanie 1.Max element insert:" << endl;
    //поставили итератор i на максимальный элемент
    it r = max_element(m.begin(), m.end());
    cout << "Max element = " << r->first << " (" << r->second << ")" << endl;
    cout << "Zadanie 3.Update:" << endl;
    avg = srednee(m);//нашли среднее арифметическое вектора
    cout << "AVG=" << avg << endl;
    //for_each(m.begin(),m.end(), upd); // для каждого элемента добавили среднее
    cout << "-----------------map.end------------------" << endl;
    system("PAUSE");
    return EXIT_SUCCESS;
}


Консультировал: solowey (5-й класс)
Дата отправки: 15.12.2016, 15:22

Рейтинг ответа:

0

[подробно]

Сообщение
модераторам

Отправлять сообщения
модераторам могут
только участники портала.
ВОЙТИ НА ПОРТАЛ »
регистрация »

Мини-форум консультации № 190266

solowey
5-й класс

ID: 400484

# 1

= общий = | 12.12.2016, 10:47 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
User194586:

Обычно так указывают заголовочные файлы входящие в состав компилятора

#include <C:\prog\11\2\Time.h>

обычно файлы пользователя указываются в кавычках
#include "C:\prog\11\2\Time.h"


Возможно, опечатка тут
   it r=max_element(m.begin(),m.end());

может нужно так
int r=max_element(m.begin(),m.end());

User194586
Посетитель

ID: 400153

# 2

= общий = | 12.12.2016, 21:11 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

Здравствуйте. А подскажите пожалуйста, как использовать for_each для "map", например так for_each(m.begin(),m.end(),upd), но он почем-то ругается...

User194586
Посетитель

ID: 400153

# 3

= общий = | 13.12.2016, 21:45 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

Подскажите, как вставить максимальный элемент в конец "словаря"

Time max = (m.end(),max_element(m.begin(),m.end(),
        [](pair<int, Time> A, pair<int, Time> B)
            {
                return A.second < B.second;
            }
             )->second);

Андрей Кузнецов aka Dr_Andrew
Старший модератор

ID: 17042

# 4

= общий = | 15.12.2016, 05:12 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер
solowey:

Оформите ответ?

=====
We have but faith: we cannot know;
For knowledge is of things we see;
And yet we trust it comes from thee,
A beam in darkness: let it grow.
-----
https://www.linkedin.com/in/andreynkuznetsov
https://www.researchgate.net/profile/Andrey_Kuznetsov11
http://www.researcherid.com/rid/K-8824-2014

solowey
5-й класс

ID: 400484

# 5

= общий = | 15.12.2016, 15:24 | цитировать цитировать  | профиль профиль  |  отправить письмо в личную почту пейджер

© Цитата: User194586
solowey:
Здравствуйте. А подскажите пожалуйста, как использовать for_each для "map", например так for_each(m.begin(),m.end(),upd), но он почем-то ругается...

Пока ответ не дам, проблема с временем... smile

На вопрос ответ дал...

 

Возможность оставлять сообщения в мини-форумах консультаций доступна только после входа в систему.
Воспользуйтесь кнопкой входа вверху страницы, если Вы зарегистрированы или пройдите простую процедуру регистрации на Портале.

Яндекс Rambler's Top100

главная страница | поддержка | задать вопрос | интересные статьи

Время генерирования страницы: 0.17718 сек.

© 2001-2017, Портал RFPRO.RU, Россия
Авторское право: ООО "Мастер-Эксперт Про"
Калашников О.А.  |  Гладенюк А.Г.
Версия системы: 7.41 от 25.02.2017
Бесплатные консультации онлайн