Как быстро отфильтровать агенты, полученные Moore2DGridQuery
Я разрабатываю модель на RepastHPC, где у меня есть несколько типов агентов, населяющих одну и ту же проекцию дискретной сетки. На каждом тике агенты одного из типов должны запросить проекцию сетки и найти агентов в их текущем местоположении. Однако им нужно рассматривать только агентов определенного типа. Я использую Moore2DGridQuery, чтобы получить всех агентов в этой позиции сетки, однако я не могу найти быстрый способ отфильтровать набор агентов, чтобы получить только агенты указанного типа. В настоящее время я обычно повторяю вектор агентов, однако это может привести к замедлению работы, когда в модели работает большое количество агентов.
Есть ли способ, которым я мог бы фильтровать их быстрее? Заранее спасибо!
1 ответ
К сожалению, я не думаю, что можно применить быстрый фильтр. Если вы повторяете вектор как часть поведения модели, вы можете проверить тип там или использовать стандартную библиотеку для копирования только тех агентов, которые вам нужны, в другой вектор. См. https://www.cppstories.com/2021/filter-cpp-containers/