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

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

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

Что делает функция C++
что делает функция? C++
Что делает cin.get C++
что делает оператор? C++
C++ что делает программа
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
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
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
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
 Аватар для BumerangSP
4283 / 1405 / 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
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
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
Каратель
Эксперт C++
6542 / 3962 / 226
Регистрация: 26.03.2010
Сообщений: 9,273
Записей в блоге: 1
Завершенные тесты: 2
09.06.2013, 20:48     Что делает pair? #8
Цитата Сообщение от mzarb Посмотреть сообщение
А не проще сразу в map засовывать или pair нужен если нету такой возможности?
ну пойди напиши свой map, и реши что там тебе проще

Добавлено через 1 минуту
Цитата Сообщение от mzarb Посмотреть сообщение
пример можно?
пример чего?
Кудаив
328 / 405 / 24
Регистрация: 27.05.2012
Сообщений: 1,162
Завершенные тесты: 2
09.06.2013, 20:55     Что делает pair? #9
mzarb,
Цитата Сообщение от mzarb Посмотреть сообщение
И ещё не пойму откуда взялись цифры в выводе в этом коде? Ведь вторую пару не указывали и даже если где-то указывалась эта вторая пара, то сами цифры странные, не понятно по какому принципу сгенерированные.
смотри у тебя имеется обычный мар - а соответственно в нем могут храниться значения только с уникальными ключами, соответственно буквы из строки не повторяются! при вызове counting в map-e ищеется именно структура pair в которой first равен переданной букве и её second увеличивается на один - эта программа подсчитывает количество вхождений символов в строку
MrGluck
Ворчун
Эксперт С++
 Аватар для MrGluck
4919 / 2662 / 243
Регистрация: 29.11.2010
Сообщений: 7,398
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++ Что это за метод?И что он делает?
C++ что делает tellg?
Объясните что именно делает "x%d, y%d: " или что это в даном коде C++

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

Или воспользуйтесь поиском по форуму:
BumerangSP
 Аватар для BumerangSP
4283 / 1405 / 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?
Ответ Создать тему
Опции темы

Текущее время: 05:39. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru