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

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

Войти
Регистрация
Восстановить пароль
 
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
#1

Что делает pair? - C++

09.06.2013, 19:32. Просмотров 1668. Ответов 10
Метки нет (Все метки)

Можно пример посложнее(с map или ещё чем) с объяснениями?
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
09.06.2013, 19:32     Что делает pair?
Посмотрите здесь:

Реализовать пользовательский класс Pair (упрощённый аналог std::pair) - C++
Здравствуйте. Проблема с выводом. В приложенном задании, требуется сделать вывод как в примере. Мой вывод основан на вводе количества...

Что делает endl - C++
Код типа cout << "blahblahblah" << endl зачем там endl, вроде и без него все нормально работает

Что делает программа - C++
Объясните пожалуйста пошагово что делает эта программа #include <stdio.h> #include <fstream> #include <iostream> using...

Что делает код? - C++
цитата из переведённой книги Александреску по языку D: "Если кто-то из ваших коллег прокачал самоуверенность до уровня Супермена, ...

Что делает операция >>? - C++
что значит знак ">>"? Например: d = zt >> 15

Что делает функция - C++
имеется вот такая функция. Обясние пожалуйста что она делает? что ето за команды которые она использует и как они работают. В интернете я...

что делает оператор? - C++
Добрый день. Подскажите пожалуйст, что делает следующий оператор: *b=(char *) malloc(1000000);

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
09.06.2013, 19:35     Что делает pair? #2
http://www.cplusplus.com/reference/u.../pair/?kw=pair
http://en.cppreference.com/w/cpp/utility/pair
недостаточно?

Добавлено через 44 секунды
Это как бы объединение двух элементов, можно различных типов данных. При этом к первому можно будет обратиться через first, ко второму через second
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
09.06.2013, 19:50  [ТС]     Что делает pair? #3
читал как раз там ибо больше нигде не смог инфы найти, но а смысл от такого объединения? И там примеров нету, а если искать примеры в других местах, то там нету объяснения. По этому и задал вопрос здесь.
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
09.06.2013, 19:55     Что делает pair? #4
Используется когда нужно объединить логически две переменные:
C++
1
std::pair<char, int> p;
И каждой букве противопоставляем необходимое число.
Или например
C++
1
std::pair<std::string, int> result;
std::string - имя игрока int - количество очков. Логично объединить в один тип данных
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.06.2013, 20:10     Что делает pair? #5
mzarb, например, это удобно для занесения данных в отображение (map).
mzarb
-211 / 7 / 1
Регистрация: 14.01.2013
Сообщений: 141
09.06.2013, 20:37  [ТС]     Что делает pair? #6
А не проще сразу в map засовывать или pair нужен если нету такой возможности?
И ещё не пойму откуда взялись цифры в выводе в этом коде? Ведь вторую пару не указывали и даже если где-то указывалась эта вторая пара, то сами цифры странные, не понятно по какому принципу сгенерированные.

Добавлено через 1 минуту
BumerangSP, пример можно?
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
09.06.2013, 20:43     Что делает pair? #7
mzarb, там же
C++
1
frequencies[c]++;
увеличиваем значение .second на один

Можно использовать и без map, я вам объяснил назначение более общее, зачем вы цепляетесь к конкретике?
Можно делать и std::vector<std:air>
и std::set<std:air>
и std:air<> p[N];
и вообще как угодно. Это тип данных
Jupiter
Каратель
Эксперт С++
6552 / 3972 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.06.2013, 20:48     Что делает pair? #8
Цитата Сообщение от mzarb Посмотреть сообщение
А не проще сразу в map засовывать или pair нужен если нету такой возможности?
ну пойди напиши свой map, и реши что там тебе проще

Добавлено через 1 минуту
Цитата Сообщение от mzarb Посмотреть сообщение
пример можно?
пример чего?
Кудаив
329 / 406 / 24
Регистрация: 27.05.2012
Сообщений: 1,165
Завершенные тесты: 2
09.06.2013, 20:55     Что делает pair? #9
mzarb,
Цитата Сообщение от mzarb Посмотреть сообщение
И ещё не пойму откуда взялись цифры в выводе в этом коде? Ведь вторую пару не указывали и даже если где-то указывалась эта вторая пара, то сами цифры странные, не понятно по какому принципу сгенерированные.
смотри у тебя имеется обычный мар - а соответственно в нем могут храниться значения только с уникальными ключами, соответственно буквы из строки не повторяются! при вызове counting в map-e ищеется именно структура pair в которой first равен переданной букве и её second увеличивается на один - эта программа подсчитывает количество вхождений символов в строку
MrGluck
Модератор
Эксперт CЭксперт С++
6997 / 4168 / 594
Регистрация: 29.11.2010
Сообщений: 11,047
09.06.2013, 21:05     Что делает pair? #10
пример использования:
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 <algorithm>
#include <cmath>
 
typedef std::pair<int, int> point; // создаем синоним
 
double calcLength(const int x, const int y)
{
    return sqrt(x*x + y*y);
}
 
int main()
{
    const int size = 5;
    point points[size];   // объявляем массив точек (пар)
    double lengths[size]; // удаленность точек от начала координат
    for (int i=0; i < size; i++)
    {
        // ввод точек
        std::cout << "Enter " << i+1 << " point x: ";
        std::cin >> points[i].first;
        std::cout << "Enter " << i+1 << " point y: ";
        std::cin >> points[i].second;
        // подсчитываем расстояние
        lengths[i] = calcLength(points[i].first, points[i].second);
    }
 
    // сортируем пузырьком в порядке убывания расстояний до центра координат
    for (int i=0; i < size; i++)
        for (int j=size-1; j > i; j--)
            if (lengths[i] < lengths[j])
            {
                std::swap(lengths[i], lengths[j]);
                std::swap(points[i], points[j]);
            }
 
    // выводим полученный результат
    for (int i=0; i < size; i++)
        std::cout << points[i].first << " " << points[i].second << std::endl;
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
09.06.2013, 21:49     Что делает pair?
Еще ссылки по теме:

Что делает конструктор? - C++
Я очень плохо понял вобще. Он вроде помогает создать в памяти место для переменных обьявленых в классе?? В каких слуаях его лучше...

Что делает операция new? - C++
spis *newl; newl=new spis(temp); что делает операция new spis(temp); П.с spis *temp spis::spis(spis*&amp;temp)

Что делает строка? - C++
Что делает 14 строка? P.S. Программа читает пары с файла и выводит их на экран. # include &lt;iostream&gt; # include &lt;string&gt; # include...

Что делает функция? - C++
void countFrequency( const std::string &amp; str, int *frequency ) //принимаем строку, и указатель на интовый массив { int idx; ...

Что делает программа? - C++
не могу понять что делает программа? #include &lt;iostream&gt; using namespace std; bool mystery(unsigned bits); int main() { ...


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

Или воспользуйтесь поиском по форуму:
BumerangSP
4285 / 1407 / 121
Регистрация: 16.12.2010
Сообщений: 2,941
Записей в блоге: 3
09.06.2013, 21:49     Что делает pair? #11
Сообщение было отмечено автором темы, экспертом или модератором как ответ
mzarb, пример добавления в map?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
#include <iostream>
#include <map>
int main()
{
    typedef std::map<int, double> MapType;
    MapType m;
    std::pair<int, double> p(11, 2.71);
    m.insert(p);
    m.insert(std::make_pair(10, 3.14)); // или
    //вывод на экран
    for (MapType::iterator pos = m.begin(); pos != m.end(); ++pos)
        std::cout << pos->first << ' ' << pos->second << '\n';
}
Yandex
Объявления
09.06.2013, 21:49     Что делает pair?
Ответ Создать тему
Опции темы

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