Гибкий элемент массива для 2D-массива

В настоящее время я работаю над большим проектом, включающим repast_hpc и mpi. Я хотел реализовать двумерный общий (между процессами) массив, потому что сам repast_hpc, похоже, не идет с этим. Для этого мне нужен член массива класса. Однако я не знаю размер массива во время компиляции. Мне нужно иметь возможность доступа и изменения значений в постоянное время. Код, приведенный ниже, является моим текущим заголовочным файлом, в котором находится проблема. Как я могу получить член массива, такой как значения в массиве в С++ 11?

      template <typename Value>
class SharedValueField {
    private:
        Value[][] values;
        std::queue<ValueChangePackage<Value>> changes;
    public:
        void initializeValueChange(int x, int y, Value value);
        Value getValue(int x, int y);
        void update();
};

Вся помощь приветствуется. Спасибо! Тритос

я уже пробовал использоватьstd::array. Там те же проблемы. я не могу использоватьstd::vector, потому что они не позволяют манипулировать значениями случайных элементов с постоянным временем.

1 ответ

В конце концов, использование ‚std::vector' работает. Как объяснили многие люди в комментариях, только изменение размера вектора имеет временную сложность в O(n). Мне нужно только переназначить элементы, что отлично работает.

Другие вопросы по тегам