Здравствуйте, Erop, Вы писали:
E>Здравствуйте, B0FEE664, Вы писали:
BFE>>
BFE>>Кто-нибудь может сказать, что valarray следовало бы назвать vector(вектор), поскольку он является традиционным математическим вектором, а vector следовало бы назвать array(массив), однако терминология развивалась иначе. valarray — это вектор, оптимизированный для численных расчётов, а vector — это гибкий контейнер разработанный для хранения объектов различного типа и манипулирования с ними, массив же — это низкоуровневый встроенный тип.
BFE>> Бьерн Страуструп
E>IMHO, это только доказывает, что "терминология развивалась" неудачно...
Я думаю, что если посмотреть английский вариант, то станет понятнее, почему vector это не array, который int array[32];
Здравствуйте, B0FEE664, Вы писали:
BFE>Я думаю, что если посмотреть английский вариант, то станет понятнее, почему vector это не array, который int array[32];
Я не очень понял про «array, который int array[32];», и почему это не помешало ввести std::array<int, 32>.
Здравствуйте, Qbit86, Вы писали:
BFE>>Я думаю, что если посмотреть английский вариант, то станет понятнее, почему vector это не array, который int array[32]; Q>Я не очень понял про «array, который int array[32];», и почему это не помешало ввести std::array<int, 32>.
Здравствуйте, B0FEE664, Вы писали:
E>>IMHO, это только доказывает, что "терминология развивалась" неудачно... BFE>Я думаю, что если посмотреть английский вариант, то станет понятнее, почему vector это не array, который int array[32];
IMHO, он таков потому, что так захотелось г-ну Степанову
BFE>Впрочем, исторические причины очень сильны в C++.
Интересно, рад ли Степанов, когда его так обызывают?
Я так думаю, что беда рийдёт откуда не ждали. Вот засунут дотнет в винапи, и появится оттуда доступ к коллекциям и прочим разным линкам, тут-то к STL и прийдёт одна северная лиса знакомиться
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Ops, Вы писали:
Ops>Для начала лучше вспомнить, что называли списком, например, Дейкстра или Вирт. Неожиданно оказывается, что это 1 или 2-связный интрузивный список, а никак не список покупок.
Здравствуйте, Qbit86, Вы писали:
Q>Я дважды озвучил определение вектора, ты этого так и не понял. Вот тебе и «пшик».
Аааа, это всё что смог сказать по этой теме? ))) Я то надеялся что не всё так запущено и просто до сих пор мнёшься с ответом. Мда, печальная картина.
Q>Наоборот, какое отношение имеют универсальные контейнеры C++ к тому, что принято называть векторами?
Ну как бы в этой теме мы обсуждаем C++. Поэтому вполне логичен мой вопрос, а не обратный к нему.
Q>В Лиспе и Хаскеле под списком понимается отнюдь не двусвязный список с возможностью быстрой вставки в середину. Так-то.
Двусвязный или односвязнный — это детали реализации. Их важно знать при использование, но они не влияют на внешний интерфейс.
В данном случае ключевым параметром является возможность доступа по индексу. Как у "списка покупок". Так вот как у нас с этим у тех структур, которые изначально называли списками в мире программирования?
Здравствуйте, Erop, Вы писали:
E>Он, как бы, пытался угадать, какие сложные задачи классно поддержать в языке. От чего-то затеял разделять данные и алгоритмы (этакое ати-ООП), и в основу положил жёстко заданные последовательности. E>А на практике оказалось нужным уметь работать с наборами, а не с последовательностями (типа SQL зарулил степановский STL), и отказ от ООП тоже пошёл по другому пути...
E>А С++ остался со всей этой не особо нужной алгеброй....
Я вижу немного другое. Он пошёл в сторону функциональных принципов. И кстати как раз сейчас эти принципы переживают новый расцвет. А с учётом появления лямбд в языке всё становится совсем интересно.
Но если писать код в строго императивном стиле, то тогда некоторые подходы STL конечно сомнительны.
E>Дык вот о том и речь... E>Но у них был систематический просчёт и фейл закономерен. Если хочешь получить что-то юзабельное -- надо идти ОТ ЗАДАЧ, а не от математических красот...
А где фейл то? ) Библиотека стала частью стандарта языка. Всем бы такой фейл. )))
Кстати, сейчас с Бустом происходит тоже самое частями.
Здравствуйте, Erop, Вы писали:
E>Я так думаю, что беда рийдёт откуда не ждали. Вот засунут дотнет в винапи, и появится оттуда доступ к коллекциям и прочим разным линкам, тут-то к STL и прийдёт одна северная лиса знакомиться
Здравствуйте, alex_public, Вы писали:
Q>>Я дважды озвучил определение вектора, ты этого так и не понял. Вот тебе и «пшик». _>Аааа, это всё что смог сказать по этой теме?
По этой теме я сказал достаточно. Умному достаточно.
_>))) Я то надеялся что не всё так запущено и просто до сих пор мнёшься с ответом. Мда, печальная картина.
Конечно, печальная. Ты смотришь, как баран на новые ворота, на понятие «векторное пространство», и оно тебе ни о чём не говорит.
Q>>Наоборот, какое отношение имеют универсальные контейнеры C++ к тому, что принято называть векторами? _>Ну как бы в этой теме мы обсуждаем C++. Поэтому вполне логичен мой вопрос, а не обратный к нему.
Ну и почему индексируемый динамический контейнер в C++ называется «вектор», а не, скажем, «тензор первого ранга»?
_>В данном случае ключевым параметром является возможность доступа по индексу. Как у "списка покупок". ;) Так вот как у нас с этим у тех структур, которые изначально называли списками в мире программирования?
Вот, например, что по этому поводу думает Википедия: «На практике линейные списки обычно реализуются при помощи массивов и связных списков... В зависимости от реализации может быть возможен произвольный доступ к элементам списка.»
Оттуда же то, о чём говоришь ты: «Иногда термин «список» неформально используется также как синоним понятия «связный список».» Заметь, «иногда», а не обычно или изначально. Классическая книга по алгоритмам Кормена и других это подтверждает. Вирта под рукой нет.
Здравствуйте, Qbit86, Вы писали:
Q>Вот, например, что по этому поводу думает Википедия: «На практике линейные списки обычно реализуются при помощи массивов и связных списков... В зависимости от реализации может быть возможен произвольный доступ к элементам списка.»
Q>Оттуда же то, о чём говоришь ты: «Иногда термин «список» неформально используется также как синоним понятия «связный список».» Заметь, «иногда», а не обычно или изначально. Классическая книга по алгоритмам Кормена и других это подтверждает. Вирта под рукой нет.
А про вектор википедия говорит, что в программировании это одномерный массив.
Переубедить Вас, к сожалению, мне не удастся, поэтому сразу перейду к оскорблениям.
Здравствуйте, alex_public, Вы писали:
_>Я вижу немного другое. Он пошёл в сторону функциональных принципов. И кстати как раз сейчас эти принципы переживают новый расцвет. А с учётом появления лямбд в языке всё становится совсем интересно.
Да не особо-то оно интересно, без GC...
А с GC -- это не совсем С++
Ну и вообще, криво всё это получилось и сложно...
_>А где фейл то? ) Библиотека стала частью стандарта языка. Всем бы такой фейл. )))
Ну она убога. И нуждается в костылях, см. буст
_>Кстати, сейчас с Бустом происходит тоже самое частями.
Вот-вот. На чистом STL вообще жить нельзя, пришлось притащить ещё кое-чего из буста + десятьлет пилить компиляторы на тему скорости компиляциии шаблонов + добавить в язык кучу всякой фигни, вроде лямбд, которые всё равно получились не до конца юзабельными, и auto, чтобы как-то заткнуть проблемы STL...
В принципе это сейчас модно. Вот гуглы компилятор JS залудили, комитет STL пытается выпрямить, рихтуя сам C++...
Но в целом это всё очень сложные решения. Ясно, что есть унаследованный код, совместимость и всё такое, но считать этот путь хоть сколько-нибудь удобным, хорошим и оправданным?
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, alex_public, Вы писали:
_>Это которое через COM будет? )
В смысле "через COM"?
Прикрутят поддержку в компилятор прозрачную и всё...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском
Здравствуйте, Qbit86, Вы писали:
Q>Оттуда же то, о чём говоришь ты: «Иногда термин «список» неформально используется также как синоним понятия «связный список».» Заметь, «иногда», а не обычно или изначально. Классическая книга по алгоритмам Кормена и других это подтверждает. Вирта под рукой нет.
А можно подробнее, что конкретно подтверждает Классическая книга по алгоритмам Кормена?
Здравствуйте, Ops, Вы писали:
Ops>А про вектор википедия говорит, что в программировании это одномерный массив.
...И в качестве примера приводит std::vector в C++. То есть да, со времён форсинга этого термина путём набравшего популярность C++ вектор неизбежно стал ассоциироваться с одномерным массивом. В Джаве даже, по-моему, тоже что-то такое есть. А если бы его таки назвали std::first_rank_tensor, то alex_public мне сейчас доказывал бы, что это рационально и естественно, и всегда так было.
И даже если «в программировании» оно и до C++ так было, это ещё не значит, что это название естественное и здравое.
Здравствуйте, Qbit86, Вы писали:
Q>Ну и почему индексируемый динамический контейнер в C++ называется «вектор», а не, скажем, «тензор первого ранга»?
Потому что тензор обладает определёнными свойствами при преобразовании системы координат. В отличие от например произвольной матрицы. Если мы определим для контейнера соответствующие преобразования (что будет довольно странно ), то можно и назвать тензором. А так, одномерный контейнер — вектор, двухмерный — матрица (а не тензор 2-го ранга ). Кстати, матрицы есть в Бусте.
Q>Вот, например, что по этому поводу думает Википедия: «На практике линейные списки обычно реализуются при помощи массивов и связных списков... В зависимости от реализации может быть возможен произвольный доступ к элементам списка.»
Хы, так я могу вообще к любому списку организовать функцию доступа по индексу. Итерируемся нужное количество раз и возвращаем результат. Только как бы зачем нам тогда список? )
Q>Оттуда же то, о чём говоришь ты: «Иногда термин «список» неформально используется также как синоним понятия «связный список».» Заметь, «иногда», а не обычно или изначально. Классическая книга по алгоритмам Кормена и других это подтверждает. Вирта под рукой нет.
Особенно забавно становится если щёлкнуть в твоей ссылке из вики на английский вариант статьи.
Здравствуйте, alex_public, Вы писали:
E>>...Вот засунут дотнет в винапи, и появится оттуда доступ к коллекциям и прочим разным линкам... _>Эээ, не слышал про такие планы. Где можно про это посмотреть?
Здравствуйте, Qbit86, Вы писали:
NB>>А можно подробнее, что конкретно подтверждает Классическая книга по алгоритмам Кормена?
Q>Использует термин «связный список», а не «список».
Это, конечно, аргумент.
А если в исходниках посмотреть?