ФлеймФорумЮмор

Перлы Форума Gamedev.ru (522 стр)

Страницы: 1518 519 520 521 522 523 Следующая »
#7815
12:26, 20 июля 2024

iw4nna.rock
> Просто вы не видели.
Ну и слава богу :)

iw4nna.rock
> цвет назвали vec4 (или float4)
Так vec или float? Это не одно и то же.

#7816
12:36, 20 июля 2024

totoro
> Вектор, если что -это математический объект.
а я хотел сказать направление...
но да, в математике пишется что это объект, указывающий направление и имеющий свою длину.

#7817
(Правка: 12:42) 12:39, 20 июля 2024

monobogdan
> Гпу - не процессор общего назначения, он "мыслит" сразу векторами.
Уже лет 15 как не мыслит.

totoro
> И тут Остапа понесло… Вектор, если что -это математический объект.
В этом смысле, любой тензор — это вектор, потому что их можно собирать в линейные комбинации.

#7818
12:45, 20 июля 2024

Mirrel
Вектор, в зависимости от контекста, определяет разные объекты:
1. Объект математики (vec2d, vec3d)
2. Объект-множество (std::vector, SIMD)

#7819
12:52, 20 июля 2024

Имбирная Ведьмочка
> В этом смысле, любой тензор — это вектор
В википедии написано, что это векторы.

#7820
13:02, 20 июля 2024

totoro
> В википедии написано, что это векторы.
https://ru.wikipedia.org/wiki/Векторное_пространство#Определение

#7821
13:06, 20 июля 2024

Имбирная Ведьмочка
> https://ru.wikipedia.org/wiki/Векторное_пространство#Определение
Зачем это? Обычно мне не нужно погружаться в математические дебри, для того чтобы написать хорошо структурированный код, достаточно общих определений. Научные изыскания оставим математикам.

#7822
18:51, 20 июля 2024

totoro
> 2. Объект-множество (std::vector, SIMD)
В С++ то, что называется std::vector на самом деле должно быть std::array, а то, что называется std::array - должно быть std::vector. Но это С++, и неадекватного нейминга там полно.

#7823
19:36, 20 июля 2024

MrShoor
> В С++ то, что называется std::vector на самом деле должно быть std::array, а то, что называется std::array - должно быть std::vector. Но это С++, и неадекватного нейминга там полно.
>
>

Окей, чатГПТ

В C++ `std::vector` и `std::array` имеют разные цели и предназначены для различных случаев использования, что и объясняет их разделение. Вот основные различия между ними:

1. **Размер**:
  - `std::array`: Это контейнер фиксированного размера, который задается во время компиляции. Размер массива не может изменяться после создания.
  - `std::vector`: Это контейнер динамического размера, который может изменяться в процессе выполнения программы. Вы можете добавлять или удалять элементы, и вектор автоматически управляет своей памятью.

2. **Производительность**:
  - `std::array`: Так как размер фиксированный, доступ к элементам происходит очень быстро и с минимальными накладными расходами. Также он может быть размещен на стеке.
  - `std::vector`: Из-за динамического управления памятью могут быть накладные расходы на выделение и освобождение памяти, а также на возможные перераспределения памяти, если вектор растет.

3. **Использование памяти**:
  - `std::array`: Размер массива компилируется в программу, и память под элементы выделяется сразу.
  - `std::vector`: Память выделяется динамически, и вектор может выделять больше памяти, чем фактически используется, чтобы уменьшить накладные расходы на выделение при добавлении элементов.

4. **Flexibility**:
  - `std::array`: Имеет фиксированное количество элементов, что делает его полезным в ситуациях, когда вам нужно заранее знать количество элементов (например, для работы с матрицами фиксированного размера).
  - `std::vector`: Предоставляет гибкость в управлении количеством элементов, что делает его более подходящим для случаев, когда размер данных может изменяться.

В общем, выбор между `std::array` и `std::vector` зависит от ваших конкретных требований к производительности и удобству использования.

#7824
19:52, 20 июля 2024

0iStalker
> Окей, чатГПТ
>
> В C++ `std::vector` и `std::array` имеют разные цели и предназначены для различных случаев использования, что и объясняет их разделение. Вот основные различия между ними
Я прекрасно знаю различия. И именно поэтому и говорю, что std::vector и std::array было бы логичнее поменять местами.
Где например ты видел, чтобы вектора меняли свою размерность на лету? Ну кроме С++

#7825
19:55, 20 июля 2024

MrShoor
> Ну кроме С++

Жаба и шарп/дотнет :)

#7826
20:01, 20 июля 2024

Dmitry_Milk
> Жаба и шарп/дотнет :)
В жабе не знаю, а в дотнете - нет, вектор не может менять свой размер

#7827
20:16, 20 июля 2024

MrShoor
> В С++ то, что называется std::vector на самом деле должно быть std::array
В плюсах вектор по аналогии с дотнетом должен называться ArrayList, а лист - LinkedList, std::array в идеале просто должен враппить массивы и предоставлять обертки над realloc, безопасного memcpy и т.п.
А нейминг дотнета действительно замечательный :)

#7828
20:28, 20 июля 2024

monobogdan
> А нейминг дотнета действительно замечательный :)
Он конечно лучше чем в С++, но далеко не замечательный.
Вот представь, что ты впервые смотришь List<T>. Какие у тебя мысли? У меня лично первая мысль - это Linked List. Но со связанным списком он не имеет ничего общего.
Или Dictionary. Под капотом это хешмапа, но по неймингу этого не видно. Вдруг это бинарное дерево?

Я лично считаю, что если вы фиксируете реализацию, то это надо отражать в нейминге.
List -> DynArray
Dictionary -> HashMap
PriorityQueue -> BinHeap
SortedDictionary -> BinTree

#7829
20:31, 20 июля 2024

MrShoor
С такой точки зрения лучше всего в Java. Там List изначально абстрактный, от которого наследуется уже ArrayList и LinkedList. Тоже самое с словарями.

Страницы: 1518 519 520 521 522 523 Следующая »
ФлеймФорумЮмор