1

我陷入了一项编程任务。我希望将我的 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

4

2 回答 2

2

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

class Tem
{
  Tem() : lenghtVector(4500) {};
private: 
 vector<double> lenghtVector;
};
于 2010-03-01T11:37:28.140 回答
1

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

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

于 2010-03-01T14:10:28.010 回答