Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« : 15-12-2007 06:49 » |
|
dimka, забыл статический полиморфизе ?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #1 : 15-12-2007 07:35 » |
|
LogRus, а это просто отлично, что я не у вас и утечки памяти зависят не от использования уже готовых и не известно как устроенных внутри загадочных std (!!!) а лишь от кривости рук. Вот такая имха. и снова повторюсь (и думай что хотишь): указатели - это красиво , удобно и быстра.
|
|
« Последнее редактирование: 15-12-2007 07:39 от Алексей1153++ »
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #2 : 15-12-2007 08:00 » |
|
dimka, шаблоны. самый простой пример вектор или алгоритм find опятьже стратегии, traits(не помню, как по руски), мета программирование + SFINAE и снова повторюсь (и думай что хотишь): указатели - это красиво , удобно и быстра.
Ага, я просто не умею их готовить. Кстати уже давно тут оффтоп устроили. Ну вот еще до кучи оффтопа, попропогандирую свою религию немного Итератор вектора, на самом деле обычный указатель в релизной сборке а в дебажной он обёртка которая, если, что скажет, что ты случайно выбежал за приделы или еще чего налажал так, что работая с вектором, я делаю это красиво, быстро и удобно еще + от использования STL(в случае STLport 5.x) в дебажной сборке могут происходить проверки корректности операторов сравнения, если < говорит true, то поменяв его параметры true не получишь, если это не так то получаешь assert
|
|
« Последнее редактирование: 15-12-2007 08:13 от LogRus »
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #3 : 15-12-2007 11:14 » |
|
(ещё бы знать, чтот такое итератор ) как-то всё усложнять любишь А с операторами сравнения проблем вообще как-то не испытывал никогда...
|
|
|
Записан
|
|
|
|
Dimka
Деятель
Команда клуба
Offline
Пол:
|
|
« Ответ #4 : 15-12-2007 14:31 » |
|
dimka, шаблоны. А, да. Я ими крайне редко пользуюсь. К канонам ООП это не относится, равно как и полиморфизм функций. ещё бы знать, чтот такое итератор Твоя позиция несколько непонятна. Воинствующее ламерство?
|
|
|
Записан
|
Программировать - значит понимать (К. Нюгард) Невывернутое лучше, чем вправленное (М. Аврелий) Многие готовы скорее умереть, чем подумать (Б. Рассел)
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #5 : 15-12-2007 14:38 » |
|
dimka, серьёзно не встречал такой термин , итерацию знаю
шаблонами, кстати, тоже ни разу не приходилось пользоваться
|
|
« Последнее редактирование: 15-12-2007 14:57 от Алексей1153++ »
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #6 : 16-12-2007 13:28 » |
|
Алексей1153++, примерчик с итератором: #include <map>
// Создаем новый тип ассоциативного контейнера typedef std::map<int, int> int_by_int_t;
// Ф-ия получает этот тип в параметре void func(int_by_int_t table) { // Создаем итератор для данного типа int_by_int_t::iterator it; int key, value;
// С помощью итератора перебираем все значения в контейнере for (it = table.begin(); it != table.end(); it++) { key = it->first; value = it->second; } } По моему тут все предельно ясно.
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #7 : 16-12-2007 14:11 » |
|
насколько понял, std::map - это аналог двумерного массива ?
хотя , судя по строке for (it = table.begin(); it != table.end(); it++)
это не совсем так
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #8 : 16-12-2007 14:51 » |
|
Не - map - это ассоциативный контейнер. Это как индекс в БД: по ключу находится значение. В примере я показал последовательный доступ, а прямой доступ будет так: Леш, тут показаны два метода для итератора (присваивание и постинкремент) и два метода для контейнера (begin и end). Методы begin() и end() возвращают итераторы, указывающие, соответственно, на первый элемент и на позицию за последним элементом. Постинкремент итератора перемещает его на следующий элемент. Это очень похоже как указатель, только сами данные скрыты в классе и не обязательно расположены единым блоком и в строгом порядке.
|
|
« Последнее редактирование: 16-12-2007 14:52 от RXL »
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #9 : 16-12-2007 14:56 » |
|
про работу .begin(); .end() it++ я так и понял, но про свойства map не знаю
|
|
|
Записан
|
|
|
|
RXL
Технический
Администратор
Offline
Пол:
|
|
« Ответ #10 : 16-12-2007 16:10 » |
|
|
|
|
Записан
|
... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #11 : 16-12-2007 16:14 » |
|
ок, почитаю как освобожусь ) Буду теперь кусять Логруса уже при помощи аргуметов
|
|
|
Записан
|
|
|
|
Антон (LogRus)
|
|
« Ответ #12 : 17-12-2007 10:47 » |
|
Алексей1153++, надеюсь. Только не забуть еще прочитать: Ундервуда (Шаблоны С++), Александреску (Современный дизайн C++), Мейерса (Эффективное использование STL), Бьёрна Карлсона(Beyond the C++ Standard Library: An Introduction to Boost) а то скушновато, когда поспорить о за и против не с кем
|
|
|
Записан
|
Странно всё это....
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #13 : 17-12-2007 10:51 » |
|
LogRus, ну вот ты конечно вывалил списочек , мне бы до той книжки найти время добраться...
Но всё равно, сильно сомневаюсь, что буду это использовать. Время покажет
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #14 : 17-12-2007 10:56 » |
|
Лёш, есть на русском. Рекомендую "STL для начинающих" автор Леен Аммерааль.Очень доходчиво для начинающих именно принцип и идея. Вот тут первая глава для ознакомления. 26 страниц. Как скачаешь - удали, а то размерчик большой.
|
|
« Последнее редактирование: 18-12-2007 10:02 от Алексей1153++ »
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #15 : 17-12-2007 10:58 » |
|
Но всё равно, сильно сомневаюсь, что буду это использовать. Время покажет Нуууу я бы тебя даже предостерёг. Хуже наркотика. Один раз попробуешь, потом будет ломка каждый раз, когда без STL делать будешь.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #16 : 17-12-2007 11:00 » |
|
Джон, а я не буду привыкать )
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #17 : 17-12-2007 11:36 » |
|
Если серьёзно - то вещь полезная, удобная, быстрая и очень простая в использовании.
|
|
« Последнее редактирование: 17-12-2007 11:39 от Джон »
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
Алексей++
глобальный и пушистый
Глобальный модератор
Offline
Сообщений: 13
|
|
« Ответ #18 : 18-12-2007 10:00 » |
|
Джон, скачал твою книжку тоже. Что-то я её сразу не заметил вчера )
|
|
|
Записан
|
|
|
|
Джон
просто
Администратор
Offline
Пол:
|
|
« Ответ #19 : 18-12-2007 10:56 » |
|
Мне в своё время повезло, что я на неё наткнулся. А то времени вобще не было дополнительно с чем-нить разбираться. А 26 страниц всё-таки можно себе позволить.
Ну а потом уже консультировался с "Thinking in C++". Очень много примеров использования. Тоже рекомендую. Её полно в инете.
|
|
|
Записан
|
Я вам что? Дурак? По выходным и праздникам на работе работать. По выходным и праздникам я работаю дома. "Just because the language allows you to do something does not mean that it’s the correct thing to do." Trey Nash "Physics is like sex: sure, it may give some practical results, but that's not why we do it." Richard P. Feynman "All science is either physics or stamp collecting." Ernest Rutherford "Wer will, findet Wege, wer nicht will, findet Gründe."
|
|
|
|