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

Создание объекта std::set - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Курсач "Алгоритм Ершова" http://www.cyberforum.ru/cpp/thread194743.html
Вот, что-то написал такое, естественно позаимствовал куски кода, работает... НО! получается алгоритм раскраски путем перебора вершин! а мне надо алгоритмом Ершова. если надо будет уяснить, что это за алгоритм, то можно написать, а пока вот.. кто знает, подскажите, как его реализовать #include <iostream> #include <conio.h> using namespace std; struct graf{ int stepeni; int color; int...
C++ Строки С++ Приветик ребята! Тут вот такая задача : Дана строка, которая содержит от 1 до 30 слов, у каждом из которых от 1 до 5 латинских букв, между соседними словами - запятая, за последним словом - точка. Оприделить и вывести номер слова из максимальной длиной. Кто знает как решить эту задачу на С++, помогите пожалуйста, а то я сама немного недопонимаю! Зарание спасибо! http://www.cyberforum.ru/cpp/thread194661.html
invalid floating point operation C++
помогите решить вот такую вот задачу: Коэффициенты системы линейных уравнений заданы в виде квадратной матрицы. С помощью допустимых преобразований привести матрицу к треугольному виду. Найти количество строк, среднее арифметическое которых меньше заданной величины. т.е. надо из матрицы 1 2 3 1 4 10 1 8 32 получить следующую матрицу 1 2 3
надо скачать C++
киньте плиз нормальную ссылку от куда можно скачать С++
C++ Квадратная матрица http://www.cyberforum.ru/cpp/thread194268.html
Переформировать квадратную матрицу размерностью N таким образом, чтобы ее столбцы располагались по возрастанию их первых элементов. Значение N программа должна запрашивать в диалоговом режиме, память под матрицу следует распределять динамически. Напишите 1. -заполнения двумерного массива случайными числами из диапазона –200, +200; 2. -вывода двумерного массива; 3. -сортировки столбца...
C++ Бинарный и интерполяционный поиск Бинарный и интерполяционный поиск реализовать надо в одной программе помогите,плиз подробнее

Показать сообщение отдельно
ForEveR
Модератор
Эксперт С++
7958 / 4720 / 319
Регистрация: 24.06.2010
Сообщений: 10,525
Завершенные тесты: 3
21.11.2010, 20:44     Создание объекта std::set
kravam, Не так все просто.
Как ни странно вызывается конструктор по умолчанию (в MSVS).
Но он не совсем конструктор по умолчанию ибо класс все же шаблонный.
Шаблон класса set выглядит так:
C++
1
2
3
4
template<class _Kty,
    class _Pr = less<_Kty>,
    class _Alloc = allocator<_Kty> >
    class set
То есть как видно все кроме типа аргумента - шаблон по умолчанию.

Далее. При написании
C++
1
std::set<int, std::less<int> > S;
Вызывается конструктор
C++
1
2
3
4
    set()
        : _Mybase(key_compare(), allocator_type())
        {   // construct empty set from defaults
        }
Где - key_compare есть переданный шаблон std::less<int>, а аллокатор используется по дефолту.

Добавлено через 5 минут
Из этого конструктора вызывается такой конструктор. Где:
_Parg - значение вернувшееся key_compare() (в нашем случае less<int>), Al - аллокатор (в данном случае по умолчанию).

C++
1
2
3
4
5
6
    explicit _Tree(const key_compare& _Parg,
        const allocator_type& _Al)
        : _Mybase(_Parg, _Al)
        {   // construct empty tree
        _Init();
        }
Добавлено через 3 минуты
При создании объекта допустим таким образом.

C++
1
2
    int Arr[]={5,4,3,2,1};
    std::set<int, std::less<int> > S(Arr, Arr+sizeof(Arr)/sizeof(*Arr));
вызовется
C++
1
2
3
4
5
6
7
8
    template<class _Iter>
        set(_Iter _First, _Iter _Last)
        : _Mybase(key_compare(), allocator_type())
        {   // construct set from [_First, _Last), defaults
        _DEBUG_RANGE(_First, _Last);
        for (; _First != _Last; ++_First)
            this->insert(*_First);
        }
Вот этот конструктор. Где соответственно итераторы - начало, конец последовательности, key_compare() возвращает переданный ШАБЛОННЫЙ тип, ну и аллокатор.
 
Текущее время: 15:44. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru