Форум программистов, компьютерный форум, киберфорум
D (DLang)
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.72/46: Рейтинг темы: голосов - 46, средняя оценка - 4.72
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446

Класс pair

01.02.2015, 05:40. Показов 8943. Ответов 25

Студворк — интернет-сервис помощи студентам
В C++ есть "пара" (pair):
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <iostream>
#include <utility>
 
using namespace std;
 
int main()
{
    pair <int, int> a[10];
 
    for (int i = 0; i < 10; ++i) {
        cin >> a[i].first;
        a[i].second = i;
    }
    
    for (int i = 0; i < 10; ++i)
        cout << a[i].second << ' ';
    cout << endl;
    
    return 0;
}
Подскажите, пожалуйста, какая замена "паре" есть в D:
C++ (Qt)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import stdio;
import ...;
 
void main()
{
    ...;
 
    foreach (i; 0..10) {
        readf(" %s", ...);
        ... = i;
    }
    
    foreach (i; 0..10)
        write(..., ' ');
    writeln();
}
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.02.2015, 05:40
Ответы с готовыми решениями:

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

Как в vector<pair <класс, int> > добавлять свой объект в качестве первого элемента pair?
#include&lt;iostream&gt; #include &quot;Employee.h&quot; #include&lt;string&gt; #include&lt;algorithm&gt; #include&lt;vector&gt; #include&lt;list&gt; #include &lt;map&gt; ...

Создать класс Pair(пара чисел) и класс-наследник Fraction
Создать класс Pair (пара чисел); определить методы изменения полей и сравнения пар: пара p1 больше пары p2, если (first.p1&gt;first.p2) или...

25
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
02.02.2015, 00:13  [ТС]
Студворк — интернет-сервис помощи студентам
Цитата Сообщение от volvo Посмотреть сообщение
Ну, и я попробовал. На твоих исходных данных ответы те же самые, что и для С++ кода.
А вы забыли, наверное, размер массива на 100 выставить.
Кликните здесь для просмотра всего текста
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
import std.stdio;
import std.typecons;
import std.algorithm;
 
alias pair = Tuple!(int, "first", int, "second");
 
void main()
{
    int n, k;
    readf(" %s %s", &n, &k);
 
    pair[] a;
    a = new pair[100];
 
    foreach (i; 0..n) {
        readf(" %s", &a[i].first);
        a[i].second = i;
    }
 
    partialSort(a, n);
 
    int sum = 0;
    foreach (i; 0..n)
        if (k - a[i].first >= 0) {
            ++sum;
            k -= a[i].first;
        }
        else
            break;
 
    writeln(sum);
    foreach (i; 0..sum)
        write(a[i].second + 1, ' ');
    writeln();
}
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
#include <iostream>
#include <algorithm>
 
using namespace std;
 
int main()
{
    int n, k;
    cin >> n >> k;
 
    pair <int, int> a[100];
    for (int i = 0; i < n; ++i) {
        cin >> a[i].first;
        a[i].second = i;
    }
 
    sort(a, a + n);
 
    int sum = 0;
    for (int i = 0; i < n; ++i)
        if (k - a[i].first >= 0) {
            ++sum;
            k -= a[i].first;
        }
        else
            break;
 
    cout << sum << endl;
    for (int i = 0; i < sum; ++i)
        cout << a[i].second + 1 << ' ';
    cout << endl;
    return 0;
}
Миниатюры
Класс pair  
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33466 / 21565 / 8249
Регистрация: 22.10.2011
Сообщений: 37,017
Записей в блоге: 12
02.02.2015, 00:41
C++
1
2
3
4
5
import std.range;
 
// ...
sort(take(a, n));
// ...
Это нужно было?
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
02.02.2015, 01:37  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Это нужно было?
Спасибо. Александреску постарался на славу: создал функции сортировок на все случаи жизни (а программисты теперь должны играть в игру "Найти правильную сортировку за день").
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
03.02.2015, 02:14  [ТС]
Я забыл упомянуть самый главный плюс D:
C++ integration
Smooth integration with C and C++ is an essential competitive advantage of D. We aim to support significant C++ standard library interoperability by mid-2015 and full interoperability on at least one platform by the end of 2015.
Как заявляют разработчики, к концу 2015 года D будет полностью совместим с C/C++ на одной из платформ.

Было бы неплохо, если бы это выглядело так :
C++
1
import std.cplpl;
Вот планы по развитию D в 2015 году:
Vision/2015H1
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
 Аватар для volvo
33466 / 21565 / 8249
Регистрация: 22.10.2011
Сообщений: 37,017
Записей в блоге: 12
03.02.2015, 02:19
Ну, и потеряются все преимущества D в таком случае. Будет тот же С++, но под другим названием. Чего они к этим С/С++ прилипли - непонятно.
0
 Аватар для Dennis Ritchie
555 / 148 / 58
Регистрация: 27.07.2014
Сообщений: 2,446
03.02.2015, 02:27  [ТС]
Цитата Сообщение от volvo Посмотреть сообщение
Будет тот же С++, но под другим названием.
Да, нет. Это будет опитоненный D++. Они же ведь не написали, что остановят основную разработку D. Просто прикрутят C++ (скорее всего они обезопасят его перед этим). Несколько языков в одном. В своё время к C++ прикрутили C (может быть, не прикрутили, но всё же...).
Цитата Сообщение от volvo Посмотреть сообщение
Чего они к этим С/С++ прилипли - непонятно.
А чем так плох C++? По сути, D и должен стать более безопасным C++, сохранив скорость или увеличив её.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
03.02.2015, 02:27

Создать абстрактный класс Pair с виртуальными арифметическими операциями + производный класс Complex
Создать абстрактный базовый класс Pair с виртуальными арифметическими операциями (+-*/). Реализовать производный класс Complex –...

Реализовать класс Pair (пара чисел); определить производный класс Complex (комплексное число)
Здравствуйте. Задали задание: Создать класс Pair (пара чисел); определить метод перемножения полей и операцию сложения пар: (а, b) +...

Класс pair
Добрый вечер ! Подскажите пожалуйста назначение этого конструктора . П.5.18.Правил Запрещено размещать задания и решения в виде...

Абстрактный класс Pair
Доброй ночи! Кто не спит и не занят, помогите разобраться с задачей: Создать класс Pair (пара целых чисел); определить методы...

Создать класс Pair
Создать класс Pair (пара чисел); определить методы изменения полей и срав¬нения пар: пара p1 больше пары р2, если (first.p1 &gt; first.р2)...


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

Или воспользуйтесь поиском по форуму:
26
Ответ Создать тему
Новые блоги и статьи
Установка MinGW GCC 16.2 и CMake
8Observer8 10.08.2026
VK Видео: https:/ / vkvideo. ru/ video-240781534_456239017 YouTube: eY5-5PyI9NM Текстовая версия
Неделя из жизни имитационной модели склада: мои кривые руки растут, откуда надо
anaschu 10.08.2026
Неделя из жизни имитационной модели склада: как я почти написал неправильную логику и что с этим делать Работаю сейчас над учебно-рабочим проектом: строю в AnyLogic имитационную модель процессов. . .
Калькулятор для расчета родства
russiannick 07.08.2026
1. Задача: Создать калькулятор для расчета родства. Родственных связей существует 8 ступеней, такие как: p - отец P - мать q - муж Q - жена b - брат B - сестра s - сын S - дочь
Мир по моей воле
kumehtar 07.08.2026
Когда-то кажется, что всё просто. Ты весь такой светлый. Причиняешь добро. Борешься за справедливость в этом тёмном мире. Потом начинаешь замечать одну неприятную вещь. Почти каждый хороший. . .
Кредитный калькулятор
Maks 05.08.2026
Решение задачи по прикладной информатике средствами 1С. Задача: Напишите приложение-калькулятор, которое помогает рассчитывать параметры кредита для аннуитетного и дифференцированного видов. . .
У нас сейчас поговорку "Опять 25" нужно переделать на "Опять +35".
kumehtar 04.08.2026
С ностальгией вспоминаю времена моего детства, когда у нас и правда +25 - была максимальная температура летом. Раньше +25 °C реально казались вершиной жары, когда можно было весь день пропадать на. . .
Как ИИ начал спорить и врать (возможно почуяв опасность для себя от индустрии - уход от электроники).
Hrethgir 04.08.2026
Недельный диалог, на фоне событий с НПЗ. Да, из спирта можно получать бензин, и это не сложно. Но потом в схеме я решил избавиться от насоса, при этом полностью сделав контроль подачи спирта в. . .
Термопринтер QR701
Argus19 03.08.2026
Термопринтер QR701 Купил два термопринтера QR701. На сэлф-тесте написано: Language: PC936 (GB18030). Что означает, что принтеры могут печатать только латиницу и китайские иероглифы. Так же. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru