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

Объяснить код - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Найти простые числа и занести их в новый массив http://www.cyberforum.ru/cpp-beginners/thread1542516.html
Реализовать 3 функции, каждая из которых принимает указатель на массив и количество элементов и возвращает указатель на новый массив. Первая функция ищет простые числа и заносит их в новый массив, вторая – все числа кратные трем, третья – все четные числа. В программе создайте массив из 3-х указателей на эти функции. Добавьте меню, в котором пользователь может выбрать желаемую...
C++ Ошибка при определении переменной в switch case 2: // почасовые работники - фиксированная плата за 40ч, после 40ч полуторная ставка int workingNorm = 40; int hours; rate = 1.5; // ставка за сверхурочные часы cout << "Enter the salary for hour: "; cin >> salary; cout << "Enter the number of hours: "; http://www.cyberforum.ru/cpp-beginners/thread1542515.html
Странная инициализация, объясните код C++
Встретил такой код: int x = (3, 2 , 5 , 4 ); std::cout<<x;//4 Вопросы: -как это называться; -зачем; -что происходит в этом случае; Спасибо!
C++ Как сравнить элемент массива с другими элементами этого же по значению?
Здравствуйте, мне нужно сравнить определенный элемент массива с другими элементами по значению. К примеру дан массив чисел. Мне нужно сравнить его элемент по значению. То есть встречаются ли в нем другие элементы одинакового значения.
C++ Вывести порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается http://www.cyberforum.ru/cpp-beginners/thread1542491.html
как вывести на экран порядковый номер слова максимальной длины и номер позиции в строке, с которой оно начинается ?
C++ Не выходит открыть второй файл Ниже представлена часть программы, все выполняется правильно, но мне необходимо повторить все то же самое с другим файлом и записать данные в другие массивы,естественно пытаясь сделать это путем копирования кода,представленного ниже и замены в нем необходимых переменных вылетает миллион ошибок. cout << "Введите имя файла: "<<endl; cin >> filename; ifstream fin(filename); ... подробнее

Показать сообщение отдельно
Operok
139 / 137 / 40
Регистрация: 15.02.2015
Сообщений: 418
Завершенные тесты: 2
02.10.2015, 10:31     Объяснить код
Цитата Сообщение от hoggy Посмотреть сообщение
в промышленной версии фигурирует один единственные параметр - тип контейнера.
все остальные типы выводятся из него.
Уверенность в том, что на практике будет использоваться "правильные типы" не может не радовать. Но мне не нравится, когда на конечного пользователя "библиотеки" возлагают подобный выбор. Да он не сможет запихать туда левый тип, но ругаться на подобное уже будет компилятор, а синтаксический анализатор. Однако, если в "мою версию" передать объект некоторого шаблонно класса (не STL контейнера) "<typename T, typename Al = std::allocator<T>>", то ругаться тоже будет компилятор на несуществующие метода/поля шаблонного типа. Поэтому соглашусь, не очень-то он и лучше, но зато сразу видны ограничения для передаваемого параметра "нужен контейнер (если давать понятные имена шаблонным типам) для типа std::string".
Цитата Сообщение от hoggy Посмотреть сообщение
что позволяет запихивать, как вектора, так и листы,
как char`овые стринги, так и wchar_t`вые.
все эти контейнеры подходят под шаблонный тип "<template <typename = std::string, typename = std::allicator<std::string>> class ContainerT>". А вот контейнер для wstring передать туда опять не получится, конструктор "value_type(str.data() + lastPos, (size_type)pos - lastPos)", где str - это std::string, не поддерживается. Тут наверное нужно добавить шаблонный параметр <typename CharT> и передавать std::basic_string<CharT> как делимую строку, так и разделитель.

В общем, как мне кажется, это уже обсуждение стилей метапрограммирования. "шаблонные шаблонные параметры" сильнее ограничивают выбор типа в пользу STL контейнера, но очень громоздкие (этой проблеме посвящается), указание обобщенного шаблонного типа выглядит более лаконично и просто, но требуют некоторых комментарий и пояснений по её использованию.

Не по теме:

Цитата Сообщение от hoggy Посмотреть сообщение
компилятор сообщит вам прямым английским текстом.
поставил студию 2015... русифицированную... теперь компилятор сообщает мне всё прямым русским текстом

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