您需要一个缓冲区(char数组),该缓冲区将传递给MPI_Recv并在以后使用它创建std::string实例。要获得接收到的字符串的长度,请使用MPI_Get_count-您应该将指针传递给std::string构造函数进行缓冲。
为了避免预先分配缓冲区并允许其接收任何大小的字符串,应首先调用MPI_Probe和MPI_Get_count以获取长度。知道了长度后,就可以为缓冲区分配必要的确切大小,然后才调用MPI_Recv。
如果听起来有点复杂,那么您可以考虑使用BOOST MPI wrappers。