我陷入了编程任务。我希望我的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
答案 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()等。