Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
0 / 0 / 0
Регистрация: 04.01.2020
Сообщений: 67

Шаблон класса для преобразования массивов из типа 1 к типу 2 (char -> int)

23.12.2020, 21:08. Показов 584. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Шаблон класса для преобразования массивов из типа 1 к типу 2 (char -> int).
Нашел код на просторах форума но он не на классах, пытался сам перевести но не смог постоянно выдаёт ошибки.
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
#include <iostream>
#include <iomanip>
 
struct Converter {
    template<typename A, typename B, size_t S>
    B(&operator()(A(&source)[S], B(&destination)[S]))[S] {
        for (size_t i = 0; i < S; ++i) {
            destination[i] = static_cast<B>(source[i]);
        }
        return destination;
    }
};
 
template<typename T, size_t S>
std::ostream &print(std::ostream &out, const T(&a)[S]) {
    for (auto &i : a) {
        out << i << " ";
    }
    return out;
}
 
int main(int argc, char **argv) {
 
    int a[4] = { 'A', 'B', 'C', 'D' };
    char b[4] = { 0, 0, 0, 0 };
 
    Converter convert;
    print(std::cout, a) << std::endl;
    print(std::cout, convert(a, b)) << std::endl;
 
    return 0;
}
0
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
23.12.2020, 21:08
Ответы с готовыми решениями:

Преобразования массива с типа int к типу char
Помогите решить задачу. Требуется создать шаблон класса для преобразования массива с типа int к типу char, помогите кто чем сможет буду...

Создать шаблонный класс для преобразования массивов из типа int в char.
Хелп как это сделать сиджу уже 2 дня и голову ломаю Создать шаблонный класс для преобразования массивов из типа int в char. нужно на с++

Определить минимальное значение для массивов типа int, double и char
1. Создайте методы, которые определяют минимальное значение для массивов типа int, double и char. Ребят, экзамен на носу, помогите...

5
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
23.12.2020, 21:13
Код рабочий:
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
#include <iostream>
#include <iomanip>
 
struct Converter {
    template<typename A, typename B, size_t S>
    B(&operator()(A(&source)[S], B(&destination)[S]))[S] {
        for (size_t i = 0; i < S; ++i) {
            destination[i] = static_cast<B>(source[i]);
        }
        return destination;
    }
};
 
template<typename T, size_t S>
std::ostream& print(std::ostream& out, const T(&a)[S]) {
    for (auto& i : a) {
        out << i << " ";
    }
    return out;
}
 
int main() 
{
    int a[4] = { 'A', 'B', 'C', 'D' };
    char b[4] = { 0, 0, 0, 0 };
 
    Converter convert;
    print(std::cout, a) << std::endl;
    print(std::cout, convert(a, b)) << std::endl;
 
    return 0;
}
PS: Заметил ту ересь, что я удалил?
0
0 / 0 / 0
Регистрация: 04.01.2020
Сообщений: 67
23.12.2020, 21:17  [ТС]
Да заметил что удалил, кстати тоже не понимал зачем оно там но решил не трогать пока. Но суть не меняется я хотел перевести на шаблон классов, а не просто шаблон функции.
0
6772 / 4565 / 1844
Регистрация: 07.05.2019
Сообщений: 13,726
23.12.2020, 21:18
Цитата Сообщение от Xao Посмотреть сообщение
Нашел код на просторах форума но он не на классах, пытался сам перевести но не смог постоянно выдаёт ошибки.
C++
1
2
3
4
5
6
7
8
9
10
struct Converter 
{
    template<typename A, typename B, size_t S>
    void operator()(A(&source)[S], B(&destination)[S])
    {
        for (size_t i = 0; i < S; ++i) {
            destination[i] = static_cast<B>(source[i]);
        }
    }
};
0
0 / 0 / 0
Регистрация: 04.01.2020
Сообщений: 67
23.12.2020, 21:31  [ТС]
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
#include <iostream>
#include <iomanip>
struct Converter
{
    template<typename A, typename B, size_t S>
    void operator()(A(&source)[S], B(&destination)[S])
    {
        for (size_t i = 0; i < S; ++i) {
            destination[i] = static_cast<B>(source[i]);
        }
    }
};
template<typename T, size_t S>
std::ostream& print(std::ostream& out, const T(&a)[S]) {
    for (auto& i : a) {
        out << i << " ";
    }
    return out;
}
int main()
{
    int a[4] = { 'A', 'B', 'C', 'D' };
    char b[4] = { 0, 0, 0, 0 };
 
    Converter convert;
    print(std::cout, convert(a, b)) << std::endl;
    print(std::cout, a) << std::endl;
 
 
    return 0;
}
Выдаэт ошибку в print
0
611 / 416 / 151
Регистрация: 11.01.2019
Сообщений: 1,746
23.12.2020, 22:42
Немудрено, ибо convert возвращает void.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
23.12.2020, 22:42
Помогаю со студенческими работами здесь

Приведение значения переменной типа char к типу int
Подскажите, как))

Написать шаблон класса очередь, и сделать к типу char спецификацию
по заданию, нужно написать шаблон класса очередь, и сделать к типу char спецификацию, вот тут сообственно и начинаются проблемы, сам шаблон...

Шаблоны (реализовать обработку одномерных и двумерных массивов типа char,int и double )
1. Используя перегрузку и шаблоны функций реализовать обработку одномерных и двумерных массивов типа char,int и double : - заполнение...

Сделать преобразование unsigned char в char, а затем типу int
Здраствуйте, есть вопрос: Число представлено двумя полями: типа long для рублей и unsigned char - для копеек. Собственно что мне...

Функция для преобразования из типа float в char
Всем привет! Если у кого-то есть возможность подсказать, как из float преобразовать число с плавающей точкой (В моем случае 4,2) в char,...


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

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут Суть: - Группа наркоманов из 10 человек. - Только один инфицирован ВИЧ. - Колются одной иглой. - Колются раз в день. - Колются последовательно через. . .
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
Знаешь почему 90% людей редко бывают счастливыми?
kumehtar 14.04.2026
Потому что они ждут. Ждут выходных, ждут отпуска, ждут удачного момента. . . а удачный момент так и не приходит.
Фиксация колонок в отчете СКД
Maks 14.04.2026
Фиксация колонок в СКД отчета типа Таблица. Задача: зафиксировать три левых колонки в отчете. Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка) / / . . .
Настройки VS Code
Loafer 13.04.2026
{ "cmake. configureOnOpen": false, "diffEditor. ignoreTrimWhitespace": true, "editor. guides. bracketPairs": "active", "extensions. ignoreRecommendations": true, . . .
Оптимизация кода на разграничение прав доступа к элементам формы
Maks 13.04.2026
Алгоритм из решения ниже реализован на нетиповом документе, разработанного в конфигурации КА2. Задачи, как таковой, поставлено не было, проделанное ниже исключительно моя инициатива. Было так:. . .
Контроль заполнения и очистка дат в зависимости от значения перечислений
Maks 12.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеПерсонала", разработанного в конфигурации КА2. Задача: реализовать контроль корректности заполнения дат назначения. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru