Форум программистов, компьютерный форум 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/thread1542485.html
Ниже представлена часть программы, все выполняется правильно, но мне необходимо повторить все то же самое с другим файлом и записать данные в другие массивы,естественно пытаясь сделать это путем копирования кода,представленного ниже и замены в нем необходимых переменных вылетает миллион ошибок. cout << "Введите имя файла: "<<endl; cin >> filename; ifstream fin(filename); ...
C++ Класс "Равносторонний треугольник" Создать класс равносторонний треугольник, член класса – длина стороны. Предусмотреть в классе методы вычисления и вывода сведений о фигуре – высота, биссектриса, периметр, площадь. Создать производный класс – тетраэдр, добавить в класс метод определения объема фигуры, перегрузить методы расчета площади и вывода сведений о фигуре. Написать программу, демонстрирующую работу с классом: дано N... подробнее

Показать сообщение отдельно
Operok
125 / 123 / 33
Регистрация: 15.02.2015
Сообщений: 386
Завершенные тесты: 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... русифицированную... теперь компилятор сообщает мне всё прямым русским текстом

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