Ответы пользователя по тегу C++
  • Как работает std::vector((NL + NE) * (NL + NE), -1.0).swap(cache)?

    @diod Автор вопроса
    Понятно, что надо такое переписать, ибо тормоза.
    Уточнил у автора и он говорит "уж не помню почему именно swap" :-)
    То есть создаётся массив с указанным размером, всем его элементам устанавливается -1.0, копируется в массив cache и - лишняя работа - копируется содержимое cache в временный массив и забывается за ненужностью.
    Автор, похоже, позабыл, что выделение памяти - это дорого, хоть и проще писать одной строчкой.
    Пример отсюда https://github.com/githole/simple-bidirectional-pa...
    Ответ написан
    Комментировать