创建类数组
我有一个类,例如:
class me362
{
public:
void geometry(long double xLength);
void mesh(int xNode);
void properties(long double H, long double D, long double K,long double Q, long double DT,long double PHO,long double CP, long double TINF);
void drichlet(long double TLeft,long double TRight);
void neumann(bool Tlinks, bool Trechts);
void updateDiscretization(long double**** A,long double* b, long double* Tp);
void printVectorToFile(long double *x);
private:
int xdim;
long double xlength;
long double tleft;
long double tright;
long double h;
long double d;
long double k;
long double q;
long double dt;
long double cp;
long double rho;
long double Tinf;
bool tlinks;
bool trechts;
};
我使用
me362 domain1;
me362 domain2;
me362 domain3;
但我想确定要初始化的域的数量来初始化它。所以我需要一个 me362 结构的动态数组。我怎样才能做到这一点?能做到吗?
谢谢大家,
埃姆雷。
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
是的,这是可以做到的。使用 std::vector 来代替,这会在每次 Push_back 操作时动态增加其大小。
Yes, it can be done. Use std::vector instead which increases it's size dynamically on every push_back operation.
使用 std::vector,它为您处理动态内存:
std::vector 还具有许多不错的功能和保证,例如与 C 布局兼容、具有引用局部性、每个元素零开销等等。
另请注意, std::vector 有一个构造函数,该构造函数采用整数参数,并创建许多元素:
请参阅任何标准库参考(例如 cppreference.com 或 cplusplus.com)了解有关使用 std::vector 的详细信息。)
Use std::vector, which handles dynamic memory for you:
std::vector also has a lot of nice features and guarantees, like being layout-compatible with C, having locality of reference, zero overhead per element, and so on.
Also note that std::vector has a constructor that takes an integral argument, and creates that many elements:
See any standard library reference (like cppreference.com or cplusplus.com) for details about using std::vector.)
首先,欢迎来到
STL(标准模板库)
的世界!在您的情况下,您可以使用 std::vector ,因为它可以为您保存可变数量的元素。
此外,您可以像这样创建矢量对象。
For starters, welcome to the world of
STL(standard template library)
!In your case, you can use
std::vector
, as it can hold variable number of elements for you.Besides, you can create a vector object like this.