类中的c ++变量初始化,使用mpi发送它

时间:2010-03-01 11:33:27

标签: c++ mpi

我陷入了编程任务。我希望我的stl向量的元素放在

使用MPI_Send()例程发送连续内存。

这是一个例子:

class Tem
{

//...
private: 
 vector<double> lenghtVector (4500);//this gives a compilation error but I need to have a fixed sized vector

};

我怎么能有一个带有串行存储器的向量?我应该做别的吗?

感谢。 最诚挚的问候。

SREC

2 个答案:

答案 0 :(得分:2)

根据C ++标准(23.2.4 / 1),向量的元素是连续存储的。要调整它的大小,您可以在Tem类的初始化列表中使用适当的构造函数。:

class Tem
{
  Tem() : lenghtVector(4500) {};
private: 
 vector<double> lenghtVector;
};

答案 1 :(得分:1)

vector会做你想要的,因为数据保证是连续的。使用&amp;(v [0])获取一个可以传递给MPI_Send()的指针。

如果您不需要动态调整向量大小,您可能需要查看Boost Array类。大小在编译时是固定的,但它是一个STL兼容的容器,所以你得到begin(),end(),size()等。