Это вопрос о том, что люди думают, как лучше выложить структуру моего класса для моей проблемы. Я делаю некоторый числовой анализ и требую, чтобы определенные «элементы» были интегрированы. Итак, я создал класс с именем "BoundaryElement", например,
class BoundaryElement
{
/* private members */
public:
integrate(Point& pt);
};
Ключевой функцией является «интеграция», которую мне нужно оценить для целого ряда различных точек. Что происходит, так это то, что в зависимости от точки мне нужно использовать разное количество точек интегрирования и весов, которые в основном являются векторами чисел. Чтобы найти их, у меня есть такой класс:
class GaussPtsWts
{
int numPts;
double* gaussPts;
double* gaussWts;
public:
GaussPtsWts(const int n);
GaussPtsWts(const GaussPtsWts& rhs);
~GaussPtsWts();
GaussPtsWts& operator=(const GaussPtsWts& rhs);
inline double gwt(const unsigned int i)
{
return gaussWts[i];
}
inline double gpt(const unsigned int i)
{
return gaussPts[i];
}
inline int numberGPs()
{
return numGPs;
}
};
Используя это, я теоретически мог бы создать экземпляр GaussPtsWts для каждого вызова функции интегрирования. Но я знаю, что, возможно, я использовал одно и то же число точек Гаусса много раз, и поэтому я хотел бы кэшировать эти данные. Я не очень уверен, как это можно сделать - возможно, std :: map, который является статическим членом класса BoundaryElement? Если бы люди могли пролить свет на это, я был бы очень благодарен. Спасибо!