Задать вопрос
  • Как создать конструктор для динамического массива?

    @robert_ford
    #include <iostream>
    template <typename T> class MyArray{
      T* arr;
      size_t size;
      public:
      MyArray(size_t size): size(size) {
        arr = new T[size];
      }
    
      MyArray(T* ptr, size_t size ):size(size), arr(ptr) {} 
      // деструктор
      ~MyArray(){ 
        if(arr == nullptr) return;
        delete[] arr;
      }
    
      // оператор перемещающего присваивания
      MyArray& operator=(T&& src) noexcept { 
        arr = src.arr;
        size = src.size;
        src.arr = nullptr;
        src.size = 0;
        return *this;
      }
    
    // конструктор перемещения
      MyArray(MyArray&& src) noexcept:size(src.size), arr(src.arr) { 
        src.arr = nullptr;
        src.size = 0;
      }
    
      T& operator[](size_t idx) {
        if(idx > size - 1 || idx < 0) throw std::out_of_range("Index is out of range");
        return arr[idx];
      }
    
    };
    
    int main() {
      int* p = new int[5]{0,1,2,3,4};
      MyArray<int> a{p, 5};
      a[0] = 5;
      std::cout << a[0] << std::endl;
      MyArray<int> b(std::move(a));
      std::cout << b[0];
    }

    Здесь, следуя правилу пяти, хорошо было бы также реализовать конструктор копирования и оператор копирующего присваивания.
    Ответ написан
    1 комментарий
  • Где хранить бесконечность записей (111 * 10^29)?

    Rsa97
    @Rsa97
    Для правильного вопроса надо знать половину ответа
    Это что вы такое собрались хранить?
    95*111*1029 байт ≈ 1034 байт ≈ 1022 терабайт
    Значит покупаете тысячу миллионов миллионов миллионов винчестеров на 10 Tb и получаете своё хранилище.
    Ответ написан
    12 комментариев
  • Как понять, почему падает PHP-FPM?

    @PendalF89 Автор вопроса
    Кажется, я нашёл временное решение. Наблюдая за htop, я заметил, что pm.max_requests перезапускает php-fpm процесс и как только процесс перезапустится, памяти он потребляет примерно 10MB, но через несколько секунд - сразу 180MB. Понятия не имею почему так происходит, но предполагаю, что дело в master-процессе. Значит - надо перезапускать master-процесс. Вот как это сделать в "лайтовом" режиме, без downtime, чтобы текущие запросы были обработаны, и только после их обработки произошёл перезапуск:
    kill -USR2 $(cat /var/run/php/php8.3-fpm.pid)

    Вот результат:
    65f6aa19ca4e9260440179.png

    Можно поставить задание в CRON. Я поставил на 3 утра каждые сутки:
    0 3 * * * kill -USR2 $(cat /var/run/php/php8.3-fpm.pid)
    Ответ написан
    Комментировать
  • Url страницы был прописан неправильно и уже в индексе - каким способом исправить?

    @Refguser
    Решения для бизнеса: от создания ИМ до...
    Какие действия нужны?

    Всё, что перечислено, кроме 4 (он сам удалится из выдачи после переиндексации). А п 2 и 3 поменять местами.
    + изменения в сайтмапе (если имеется) и вот его уже скормить заново ПСам.
    Ответ написан
    Комментировать
  • Где найти людей для open-source проекта?

    devolonter
    @devolonter
    Полностью поддерживаю предыдущих ораторов. Более того, будьте готовы, что к вашему open-source проекту, возможно, так никто и никогда не присоединится. Поэтому, у вас лично, должно быть большое желание довести дело до конца, даже в одиночку. Иначе смысла браться нет.
    Ответ написан
    Комментировать