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

Checked_iter - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Быстродействие http://www.cyberforum.ru/cpp-beginners/thread928426.html
Что лучше использовать, если быстродействие системы достаточно важно, а элемент используется часто? template <typename T> struct Point { T x, y; }; template <typename T>
C++ Не работает openmp Написал простенькую программку с распараллеливанием собрал откомпилил, но распараллеливания нет. Программка выглядит так: -------------------------------- #include <iostream> #include <omp.h> int main(int argc, char* argv) { #pragma omp parallel num_threads(4) http://www.cyberforum.ru/cpp-beginners/thread928416.html
C++ Каким образом getchar() меняет содержимое массива?
Здравствуйте! Почему-то наличие getchar(); в коде влияет на содержимое массива. Если данный код не менять - то выводит правильный результат. Результат представлен на первом скрине. Если удалить первый getchar() с 21 строки, то в результате появляется абракадабра - представлено на втором скрине. Если удалить второй getchar(), то в результате вообще получаются нули - представлено на третьем...
C++ клас myDate
Создайте класс Date, который будет содержать информацию о дате (день, месяц, год). С помощью механизма перегрузки операторов, определите операцию разности двух дат (результат в виде количества дней между датами), а также операцию увеличения даты на определенное количество дней. с++ class myDate { public: myDate(); ~myDate(); private:
C++ Не могу побороть wxDevC++ - на Hello world "Проект не откомпилирован" http://www.cyberforum.ru/cpp-beginners/thread928353.html
Хотел попробовать wxDevC++ в деле. Установил. Само собой, для начала сделал Hello, world. И вдруг выскакивает окно "Проект не откомпилирован"... и никак не поборю это дело. Текст-то классический: #include <windows.h> #include <stdio.h> #include <stdlib.h> int main(int argc, char *argv) { printf("Hello World!\n");
C++ Определить какое число Данная последовательность: 19, 39, 59, 79, 99, 119 ... И нужно определить, если введенное число относится к этой последовательности. Возможно ли это сделать вписав только одно условие? подробнее

Показать сообщение отдельно
ninja2
 Аватар для ninja2
230 / 186 / 7
Регистрация: 26.09.2012
Сообщений: 2,018
Завершенные тесты: 1
26.07.2013, 03:44  [ТС]     Checked_iter
ForEveR, Да понятно а от арифметические операции над указателями, итератор это можно сказать указатель, от есть у нас int* p. Первый элемент допустим указывает на 2000, второй на 2004, третий на 2008, от если мы отнимим от второго первый элемент(2004-2000) мы должны получить 4, а на самом деле мы ж получим 1. Так что получается оно само автоматом делит на 4. Это примерчик из какой то книги или статьи, не помню, про арифметику указателей.
Цитата Сообщение от Croessmah Посмотреть сообщение
Долго посмотреть?
Да смотрел и не раз, токо там мало что понял, токо глянул вроде понятнее стало, но все рамно зачем он используется, затем чтобы задать обобщенный тип? iterator используется для того чтобы задать какой то определенный тип итератора, а iterator_traits (черты итератора) чтобы задать как бы все итераторы?
Он походу так же используется как и unique_function, для того чтобы просто задать имена typedef с известными именами

Добавлено через 15 часов 41 минуту
ЕСть еще задание: "Переделайте Checked_iter так, чтобы проверять недействительные итераторы."
Как его сделать? Недействительные итераторы это когда мы создали этот итератор, а затем изменили resize() размер контейнера и некоторые итераторы могут стать недействительными. Как же мне это сделать? Нужно наверно в каждом методе, разыменование, инкремент, декремент перепроверять диапазон? В книге нету примера, нужно самому додумать.
Давайте попытаемся просто теоретически разобрать, без кода!!!!

Добавлено через 7 минут
От код, который не работает так как нужно.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
    try
    {
        cout <<*p<<endl;
        ++p;
        //ls.resize(2);
        cout <<*p<<endl;
        ++p;
        ls.resize(2);//делает p недействительным
        cout <<*p<<endl;
        //cout <<"p-p1 = "<<(p-p1)<<endl;
 
    }
    catch(out_of_bounds)
    {
        cout <<"event be except"<<endl;
    }
 
    return 0;
 
Текущее время: 07:17. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru