
![]() |
Наши проекты:
Журнал · Discuz!ML · Wiki · DRKB · Помощь проекту |
|
ПРАВИЛА | FAQ | Помощь | Поиск | Участники | Календарь | Избранное | RSS |
[216.73.217.4] |
![]() |
|
Страницы: (245) « Первая ... 9 10 [11] 12 13 ... 244 245 ( Перейти к последнему сообщению ) |
Сообщ.
#151
,
|
|
|
Цитата ну хорошо, помечает на удаление, если быть уж совсем дотошным. Ничего он не помечает, ау, окстись ![]() Добавлено А в продолжение нужно вспомнить тот мешок травы, который надо выкурить, что бы понять bing1nd, bind2nd и т.п. |
Сообщ.
#152
,
|
|
|
Бобёр, т.е. на мои слова возражений так и не последует?
![]() То, что вы воспринимаете алгоритмы STL как работающие с контейнерами, а не с диапазонами, в минус только вам, а не STL ![]() Добавлено Вообще в плюсах и в STL в частности много место, где ответственность спихивается на программиста: ежели чего, то ты ССЗБ. Но право же, вы выбрали далеко не показательный пример ![]() |
Сообщ.
#153
,
|
|
|
Ненене, я то уже давно выкурил тот самый мешок травы, у меня к STL-ю претензий нету, если что
![]() нужно просто чётко понимать цели и задачи, ну и немного понимать алгоритмику, что бы вкурить, почему у std::list есть свой sort, а у std::vector - нету, ну и т.д. Ну или почему std::map["kakaka"] всегда что нибудь возвращает ![]() |
Сообщ.
#154
,
|
|
|
Цитата Бобёр @ А в продолжение нужно вспомнить тот мешок травы, который надо выкурить, что бы понять bing1nd, bind2nd и т.п. Они вроде как deprecated теперь, ибо std::bind. |
Сообщ.
#155
,
|
|
|
Цитата Бобёр @ Ну или почему std::map["kakaka"] всегда что нибудь возвращает Между прочим, не всегда ![]() Это очень удобно и за отсутствие подобного я пинал дженерики и дотнетовский Dictionary. Это два ![]() |
Сообщ.
#156
,
|
|
|
Цитата MyNameIsIgor @ Это очень удобно и за отсутствие подобного я пинал дженерики и дотнетовский Dictionary. Это два ![]() Мне в этом смысле нравится python: ![]() ![]() x = dic["kakaka"] # error dic["kakaka"] = 10 # ok Про ruby наврал, а мне казалось, что там так же ![]() |
Сообщ.
#157
,
|
|
|
Цитата D_KEY @ Мне в этом смысле нравится python/ruby Эммм... Я слишком плохо их знаю, не в курсе как там это реализовано. Да и тоже не айс, кстати ![]() Самым крутым вариантом было бы, если ![]() ![]() x = dic["kakaka"] # ok но в словаре элемент с данным ключом не создавался. |
Сообщ.
#158
,
|
|
|
Цитата Бобёр @ Ничего он не помечает, ау, окстись ![]() Если говорить языком пользователя, то как раз таки помечает, если лезть в конкретные реализации, то переносит в конец, потом это все удаляется с помощью функции erase. да только дело не в этом. Я не понял в чем фишка? |
Сообщ.
#159
,
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ Мне в этом смысле нравится python/ruby Эммм... Я слишком плохо их знаю, не в курсе как там это реализовано. Да и тоже не айс, кстати ![]() Самым крутым вариантом было бы, если ![]() ![]() x = dic["kakaka"] # ok но в словаре элемент с данным ключом не создавался. Я там выше написал, про ruby наврал. Там как раз, как ты хочешь, если элемента нет - вернет nil, а присваивание сработает. А реализовано просто - есть оператор индексирования([]), а есть оператор изменения элемента([]=). |
Сообщ.
#160
,
|
|
|
Цитата D_KEY @ Там как раз, как ты хочешь, если элемента нет - вернет nil, а присваивание сработает. Ну, nil не то ![]() Цитата D_KEY @ А реализовано просто - есть оператор индексирования([]), а есть оператор изменения элемента([]=). Для Ruby фишку с = на конце метода знаю. А вот как в Python'е сделали - не помню... |
Сообщ.
#161
,
|
|
|
Цитата KILLER @ Если говорить языком пользователя, то как раз таки помечает, если лезть в конкретные реализации, то переносит в конец Он их никак не помечает(с точки зрения контейнера), а именно что переносит(порядок не гарантируется). Причем это не "конкретные реализации", а требование стандарта. Если ты не сделаешь erase перенесенные элементы так и останутся валидными(для контейнера). Добавлено Цитата MyNameIsIgor @ Цитата D_KEY @ Там как раз, как ты хочешь, если элемента нет - вернет nil, а присваивание сработает. Ну, nil не то ![]() Погоди, а как же ты хочешь в статике? x'у присвоить объект, сконструированный по умолчанию? Цитата Цитата D_KEY @ А реализовано просто - есть оператор индексирования([]), а есть оператор изменения элемента([]=). Для Ruby фишку с = на конце метода знаю. А вот как в Python'е сделали - не помню... __getitem__ и __setitem__ ![]() |
Сообщ.
#162
,
|
|
|
Цитата D_KEY @ Погоди, а как же ты хочешь в статике? x'у присвоить объект, сконструированный по умолчанию? Да, именно. Но в словаре элемент не создавать. |
Сообщ.
#163
,
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ Погоди, а как же ты хочешь в статике? x'у присвоить объект, сконструированный по умолчанию? Да, именно. Но в словаре элемент не создавать. А чем тебе не нравится исключение? Мне кажется это логично, когда пытаемся получить объект, которого нет. А так в питоне у dict есть отдельный метод get(), который вернет или None или второй параметр метода, не создавая элемент: ![]() ![]() a = {} print(a["aaa"]) # error print(a.get("aaa")) # None print(a.get("aaa", 10)) # 10 a["aaa"] = 11 # {'aaa': 11} |
Сообщ.
#164
,
|
|
|
Цитата D_KEY @ А чем тебе не нравится исключение? Ну, так ведёт себя дотнетовский Dictionary. Похабно он себя ведёт, для меня он очень неудобный. Приходится делать два поиска вместо одного. Цитата D_KEY @ Мне кажется это логично, когда пытаемся получить объект, которого нет. Не так. Я пытаюсь у словаря узнать, есть ли у него значение по данному ключу. А вот обращение к объекту, которого нет - это рубиновый nil ![]() Добавлено Цитата D_KEY @ А так в питоне у dict есть отдельный метод get(), который вернет или None или второй параметр метода, не создавая элемент: Угу, динамика же. В плюсах мы тип-значение указываем. Вот и пускай конструирует. Ну, можно такой get сделать на случай отсутствия конструктора по умолчанию. Но оператор [] - это же сокращение записи. Вот пусть и имеет некое "поведение с предположениями". |
Сообщ.
#165
,
|
|
|
Цитата MyNameIsIgor @ Цитата D_KEY @ А чем тебе не нравится исключение? Ну, так ведёт себя дотнетовский Dictionary. Похабно он себя ведёт, для меня он очень неудобный. Приходится делать два поиска вместо одного. Так get() же ![]() Цитата Не так. Я путаюсь у словаря узнать, есть ли у него значение по данному ключу. А вот обращение к объекту, которого нет - это рубиновый nil ![]() Ну может руби и прав, но у питон предоставляет и то, и другое ![]() |