我已经创建了这个程序来从 foodbanks.dat 和 Residences.dat 进行距离接近分析,它在控制台中运行良好,但我需要帮助才能在 MPI 上运行。只是如何向量到 C 数组,因为在 MPI 中将不接受 C++ 向量以及如何将每个操作块(读取文件并填充向量,计算距离以获得壁橱食物回馈和分析 KM 中的范围)到单独的函数中
user474901
问问题
184 次
1 回答
2
std::vector
在内部使用一个数组,因此您所要做的就是获取该数组。
如果你有 C++11,你可以使用std::vector::data来获取指向std::vector
.
如果你没有 C++11,你总是可以像这样使用std::vector::front&front()
来获取指向数组的指针。
只需确保在执行此操作时不要在获取指针后增加向量内数组的大小,因为这会使您的指针无效。
代码示例:
#include <vector>
#include <iostream>
int main()
{
std::vector<int> myVec;
myVec.push_back(0);
myVec.push_back(1);
//int* myArrayPointer = myVec.data(); // For C++11
int* myArrayPointer = &myVec.front(); // For pre-C++11
for(std::size_t i = 0; i < myVec.size(); ++i)
{
std::cout << myArrayPointer[i];
}
return 0;
}
于 2013-11-10T20:15:17.877 回答