Тема: Подскажите по С++

Ответить в теме
Страница 2 из 2 ПерваяПервая 1 2
Показано с 21 по 28 из 28
  1. Вверх #21
    Частый гость Аватар для homo ludens
    Пол
    Мужской
    Сообщений
    751
    Репутация
    141
    Цитата Сообщение от lexar Посмотреть сообщение
    if(sz) - супер!
    Но я вредный!
    и сделаю sz = -1;
    Ловите результаты господа!
    size_t - беззнаковый, потому если например я поставлю if(sz>=0) то компилятор мне скажет что-то неприятное и тупо заменит ее на if(1). А если if(sz>0), то компилятор молча преобразует код в if(sz), просто я об этом знать не буду.

    Другой вопрос, что для полной защищенности еще и реальный размер массива дабл должен совпадать с sz, что достигается только использованием спец. классов или коллекций (например вектора и т.п.), которые гарантирует синхронность sz и реального размера data.
    Тогда код будет абсолютно защищенным и чистым от ошибок.
    The future is already here - it is just unevenly distributed. (c) W. Gibson


  2. Вверх #22
    Цитата Сообщение от homo ludens Посмотреть сообщение
    Другой вопрос, что для полной защищенности еще и реальный размер массива дабл должен совпадать с sz, что достигается только использованием спец. классов или коллекций (например вектора и т.п.), которые гарантирует синхронность sz и реального размера data.
    Тогда код будет абсолютно защищенным и чистым от ошибок.
    Ага.
    Щас.
    Саттер целую главу посвятил неправильному использованию этих самых векторов.
    Всегда найдется тип, способный сотворить ляп, способный завалить все нафиг.

  3. Вверх #23
    Новичок
    Пол
    Мужской
    Сообщений
    86
    Репутация
    16
    Badboyskiller прозрел от раскрытой темы и ушел в осадок - на баше что-то подобное было - дети не проходили умножение - как они могут нати площадь? - через интеграл!

  4. Вверх #24
    Новичок
    Пол
    Мужской
    Сообщений
    36
    Репутация
    12
    А что особенного-то? Площадь действительно есть интеграл, а интеграл - это чистое сложение. В контексте же темы не конкретизировано очень многое, так что можно обсудить эффективное вычисление среднего арифметического на абстрактном входном формате (в том числе символьно-формульном) без потери точности и использованием технологий параллельных вычислений. Как на SMP, так и на архитектурах с локальной памятью.

  5. Вверх #25
    Посетитель Аватар для крыс
    Пол
    Женский
    Сообщений
    369
    Репутация
    54
    А что особенного-то? Площадь действительно есть интеграл, а интеграл - это чистое сложение.
    угу, сложение, вот только сложение площадей прямоугольников (бесконечно малых), вычисляемых, как это ни удивительно, умножением

  6. Вверх #26
    Новичок
    Пол
    Мужской
    Сообщений
    36
    Репутация
    12
    Цитата Сообщение от крыс Посмотреть сообщение
    угу, сложение, вот только сложение площадей прямоугольников (бесконечно малых), вычисляемых, как это ни удивительно, умножением
    Да, это я упустил С другой стороны - это уже глубокое понимание. А так в той же школе вообще не вводят абстрактного умножения. Ограничиваются вычислительными процедурами для натурального ряда и десятичной системы счисления. Хотя интегралы в школьной программе есть.

  7. Вверх #27
    Постоялец форума Аватар для Newton
    Пол
    Мужской
    Адрес
    Calgary, Alberta
    Сообщений
    1,105
    Репутация
    826
    Давайте еще поговорим про БАО - там вообще ни сложения ни умножения ни деления - там только звездочки для обозначения операций. А начинали с векторов!
    Моя хата з найкращого краю в світі.

  8. Вверх #28
    Цитата Сообщение от Newton Посмотреть сообщение
    так а что будет? sz - unsigned, значит битовое представление -1 будет интерпретироваться как битовое представление положительного числа. И в функции невозможно никак проверить, является ли переданное значение sz ошибкой (-1), или это действительно такое количество элементов...
    Хотя в данном случае, наверное можно было бы учесть размер double и проверить, чтоб

    Код:
     sz <= static_cast<unsigned>(-1) / sizeof(double)
    но это, мне кажется, уже проверка на дурачка. Да и компилятор предупредит, что происходит преобразование из signed в unsigned.
    А почему бы все не загнать в банальный vector?
    Если им аккуратно пользоваться, то и проверок никаких не надо.


Ответить в теме
Страница 2 из 2 ПерваяПервая 1 2

Социальные закладки

Социальные закладки

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения