是否可以创建一个动态数组,其中的所有条目都等于0?
int** adjMatrix;
adjMatrix= new int*[numOfVertices];
for(int i=0; i<numOfVertices; i++){
adjMatrix[i]=new int[numOfVertices];
}
另外, 我被要求在图表中找到最长的路径。我在考虑使用Dijsktra算法将所有权重乘以-1后以正常方式运行程序。然后我将再次乘以-1并获得最长的路径。我认为这应该给我最长的路径,你认为它会起作用吗?而且,我正在处理相当大的数据,例如1.000.000节点等,我的时间限制为2秒,内存限制为128mb。你能建议任何其他数据结构而不是Adjacency Matrix吗?因为我很确定它会超出极限。任何帮助将不胜感激。
答案 0 :(得分:4)
是否可以创建一个动态数组,其中的所有条目都等于0?
使用值初始化:
for(int i=0; i<numOfVertices; i++){
adjMatrix[i]=new int[numOfVertices]();
// ^^
}
答案 1 :(得分:0)
最快的方法是仅在数组在内存中连续时才使用memset
,但。因此,为此,您应该首先分配一维数组。