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

Итератор ? - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ В идентификаторе минимальной длины определить количество букв http://www.cyberforum.ru/cpp-beginners/thread342496.html
Вообщем это пример который дали в методичке по с++ но он нифига не работает, сам я фигово пока понимаю в С++ только начинаю его изучать я заочник, люди можите исправить его чтоб работал этот пример, просто хочется по шаблону рабочему более менее подъучить азы, а потом уже глубже изучать мне так всегда проще было, заранее спасибо. а компилирую и запускаю в компиляторе с++ трубо . // Задана...
C++ fstream с++ Помогите пожалуйста... Как при считывании из файла считать переменные если они в файле находяться на разных строчках например надо считать a,b а они в файле записаны так: 1 2 переделайте пожалуйста эту программу чтобы она считывала не с одной строчки а с двух... http://www.cyberforum.ru/cpp-beginners/thread342494.html
Алгоритм Дейкстры C++
Всем доброго времени суток! Решал я задачу на ацмп про алгоритм Дейкстры. http://********/?main=task&id_task=132 Но зараза заваливается на 8 тесте. Не могли бы вы сказать в чем дело? #include <fstream> #include <algorithm> #include <vector> #include <iostream> int main() { //********************************************************************** int...
VS 6.0 C++
Подскажите пожалуйста, как добавлять dll-ки и папки с хидерами (.h) в Visual Studio 6.0? :-[
C++ Выравнивание текста http://www.cyberforum.ru/cpp-beginners/thread342466.html
Как мне выравнить текст в этом коде, как показано на рисунке ? cout<<"Едем ................................................"<<endl<<endl; cout<<"Лифт №1"; if(lif==chen) cout<<"(Вы)"; cout<<" "; cout<<"Лифт №2"; if(lif==chen) cout<<"(Вы)";
C++ Юникод в Си++ Здравствуйте. int main(int argc, char *argv) { wstring s1 = L"abracadabra"; cout << s1.size() << endl; // 11 wstring s2 = L"абракадабра"; cout << s2.size() << endl; // 22 подробнее

Показать сообщение отдельно
Сыроежка
Заблокирован
20.08.2011, 21:28     Итератор ?
Цитата Сообщение от Deviaphan Посмотреть сообщение
ForEveR не точно выразился. reverse_iterator не может быть заменён указателем. Он это имел в виду.
Чтобы заменить reverse_iterator на указатель, нужно полностью переписывать логику работы программы.


reverse_iterator для вектора является итератором произвольного доступа и не имеет ничего общего с указателем, кроме вышеназванных операций. То, что для вектора итератор (иногда) является указателем, это просто особенность реализации, которой может и не быть.
И что из тогго, что reverse_iterator не может быть заменен указателем? В чем глубокий смысл этого утверждения?! reverse_iterator - это шаблонный класс, поэтому очевидно не может быть заменен простым указателем. Только что это меняет в определении итераторов?!!!
А вторая ваша фраза - это вообще какая-то бессмыслица. reverse_iterator для обычного указателя также является итератором произвольного доступа.

Я уже сказал, что такое впечатление, что имею дело с совершенно неадекватными людьми. Зря модератор корректировал мое сообщение. Я как раз вам и говорил, что эта "особенность реализации" итераторов для вектора как раз и говорит, что итераторы являются обощением указателей, и что вы не в состоянии определить, имеете ли вы дело с обычным указателем или со специальным классом, написанным для вектора, если не посмотрите конкретно реализацию вектора.

Об этом и речь.

Честно говоря, я не знаю, сколько вам раз нужно повторять одно и тоже. Я уже это повторил не меньше 5 раз. Так что проблема данной дискуссии - это проблема того, насколько вы воьбще способны понимать, что вам пишут.
Я вам ранее написал, что итератор вектора может быть реализован либо в виде класса, либо в виде обычного указателя. Сейчас вы по прошествии с десяток сообщений, фактически, цитируете меня, правда сами не понимаете смысла того, что вы процитировали, и что эта цитата подтверждает.
До этого вы вообще утверждали, что reverse_iterator нельзя использовать с обычными указателями.

Меня всегда поражает в подобных дискуссиях одно: почему-то невежды, которые имеют обрывочные знания о языке С++ особенно агрессивны и упрямы. Вместо того, чтобы спросить, например, как применить reverse_iterator к обычному указателю, они начинают нести ахинею, что reverse_iterator нельзя применить к обычным указателям.

Добавлено через 23 минуты
Цитата Сообщение от ForEveR Посмотреть сообщение
Сыроежка, Итератор не является понятием исключительно С++. Итератор - паттерн. Он используется во множестве языков (например Java, C#, Python), в которых нет указателей вообще. Поэтому не надо привязывать паттерн к одному языку и говорить, что итератор и указатель не отличаются. Даже в контексте CPP это не одно и то же, что вам уже говорят 4 страницы.
Во-первых, мы обсуждаем С++. С++ и Java - это к вашему сведению разные языки! А в разных языках разные концепции. Могут использоваться одни и теже термины, но тем не менее эти термины будут нести различную семантическую нагрузку.
И я не говорил нигде, что итератор и указатель это одно и тоже. Это вы просто не в состоянии понять, что вам пишут, и что заложено в С++. Я говорил, что в С++ ( обратите внимание на такое странное для вас обозначение, как С++) итератор - это обобщение указателя. Я говорил, что вы можете итератором произвольного доступа заменить указатель и наоборот. И наглядной демонстрацией этого служит реализация шаблонного класса вектор в разных компиляторах, когда в одних случаях используется для вектор обычный указатель, а в других случаях разработчики компилляторов пишут класс итератора.
 
Текущее время: 10:45. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru