【发布时间】:2021-07-30 18:23:39
【问题描述】:
我使用这两种类型的二维向量来加载图形。
在第一种情况下,我使用vector<vector<int> > v 加载图形邻接矩阵,在第二种情况下,当我使用vector <int>* v = new vector <int>[n] 对其进行初始化时,我使用vector <int>* v 来加载。(n 是顶点数) .
在官方评委平台上显示vector<vector<int> > v占用内存超过5000kb,而vector <int>* v仅占用约3600kb。这两种二维向量有什么区别?
如果您能帮我解决这个问题,我将不胜感激。谢谢。
【问题讨论】:
-
n有多大?你如何填充这些向量? -
一个向量需要一些额外的东西,因为它可以做的不仅仅是一个数组,但我不希望它那么多。可以出示一下代码吗?
-
我这样填充向量:
vector<int>* graph = new vector<int>[n];int source = 0, dest = 0;//building undirected graphwhile (cin >> source && cin >> dest){graph[source].push_back(dest); graph[dest].push_back(source);} -
n是100000以下的自然数
标签: c++ memory vector memory-management