Ответы пользователя по тегу Типы данных
  • Как перевести тип данных с С++ на JS?

    pair - массив из двух элементов или объект с двумя полями.
    ["a", "b"]
    {"fst": "a", "snd": "b"}

    map<string, vector<float> > Объект или Map у которого в качестве значения - массив, а в качестве ключа-строка.
    {"a": [1.2, 3.5]}

    map<pair<string, string>, float> С этим сложнее, тк что массивы, что объекты в js сравниваются по ссылке => вариант того, как мы представляем pair сам по себе не подойдёт.

    Так что тут лучше будет вместо pair использовать строку, которая создана как конкатенация двух экранированных строк через разделитель.

    const map = {};
    const a = "abc";
    const b = "123";
    const key = `${btoa(a)}$${btoa(b)}`;
    map[key] = 42;
    Ответ написан
  • Почему boolean использует больше памяти чем byte?

    1. Это очень зависит от конкретного языка.
    2. А ещё и от деталей реализации зависит. В некоторых языках даже может быть не определено, сколько байт занимает bool и он может занимать от 1 байта (меньше - только если реализовать его как битовый флаг в структуре побольше) до 8 байт (чтобы попасть в выравнивание)

    А byte всегда равен одному байту, тк ему реально важен размер.
    Ответ написан
    Комментировать
  • В чем отличие float/double и decimal?

    float и double - это числа с плавающей точкой по стандарту IEEE754. Операции с ними происходят достаточно быстро, тк они реализованы в процессоре на аппаратном уровне.
    Но они достаточно не точные в плане выражения десятичных дробей. (То самое 0.1+0.2 != 0.3).
    Настоящие деньги на них считать не следует.

    decimal же напротив очень точный, но медленный.
    Ответ написан
    Комментировать