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

Объясните пожалуйста зачем нужна структура класса iterator_traits. - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Как объединить файлы? http://www.cyberforum.ru/cpp/thread1079632.html
Допустим, я хочу сделать программу на с++, интерфейс к ней на с#. Как это осуществить? Спасибо!
C++ Warning LNK4248: неразрешенная лексема TypeRef для "GLUquadric" Добрый день господа эксперты! Помогите с таким вопросом компилятор выдает: frmMain.obj : warning LNK4248: неразрешенная лексема TypeRef (01000038) для "GLUquadric"; образ нельзя запустить. Но при этом след. код нормально работает: GLUquadric *qC1; qC1= gluNewQuadric(); http://www.cyberforum.ru/cpp/thread1078671.html
Подскажите, пожалуйста, где можно подробнее узнать о библиотеки <ios> и параметре system(.); C++
заранее спасибо.
Работа с мобильным устройством C++
Доброго времени суток! Пишу диплом, возникла проблема. Нужно законнектиться к мобильному телефону (по блютузу, к примеру) и отобразить файловою систему этого телефона в окне ПК(все папки с файлами - так же, как и при обычном подключении через USB-кабель) для передачи информации. Подключиться мне нужно программно, прог таких никогда на писал. Посоветуйте что-то, пожалуйста. Спасибо! ...
C++ Нужно разработать программную систему http://www.cyberforum.ru/cpp/thread1077350.html
разработать программную систему для туристической фирмы. Текст задания во вложениях.Работу нужно сдать 23 января.
C++ Размер типа Такой небольшой занимательный код. #include <iostream> struct S1 { }; struct S2 { int a; подробнее

Показать сообщение отдельно
BESSON_off
3 / 0 / 1
Регистрация: 08.07.2013
Сообщений: 344

Объясните пожалуйста зачем нужна структура класса iterator_traits. - C++

23.01.2014, 18:42. Просмотров 967. Ответов 6
Метки (Все метки)

Всем привет!

Объясните пожалуйста зачем нужна структура класса iterator_traits. Ведь все тайпдефы, которые содержатся в этой структуре имеются в каждом стандартном контейнере.
И код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class T>
typename iterator_traits<T>::reference func(T iter_begin)
{
typename iterator_traits<T>::reference d = *iter_begin;
return d;
}
 
int main()
{
    std::vector<int> vec;
    int init = 0;
    std::generate_n(std::back_inserter(vec), 10, [&] () -> int {return ++init;});
 
    std::vector<int>::iterator iter_begin = vec.begin();
 
    cerr << func(iter_begin) << endl;
 
    return 0; 
}
можно записать так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
template <class T>
typename T::reference func(T iter_begin)
{
typename T::reference d = *iter_begin;
return d;
}
 
int main()
{
    std::vector<int> vec;
    int init = 0;
    std::generate_n(std::back_inserter(vec), 10, [&] () -> int {return ++init;});
 
    std::vector<int>::iterator iter_begin = vec.begin();
 
    cerr << func(iter_begin) << endl;
 
    return 0; 
}
Их предназначение ограничивается созданием пользовательских контейнеров?
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru