0
我創建了包含200個頂點的鄰接列表,每個向量對應於編號爲i的行,它具有與i共享邊的所有頂點。我想從鄰接列表中刪除198個隨機向量。但我得到分段錯誤錯誤刪除矢量向量中的向量C++
void contract_edge(vector<vector<int> >&adjacency_list , int pos)
{
adjacency_list.erase(adjacency_list.begin()+pos);
}
int main()
{
vector<vector<int> > adjacency_list(200);
int size = 200;
while(size > 2)
{
int random = rand()%200;
contract_edge(adjacency_list,random);
size--;
}
return 0;
}
我想知道哪個是從矢量矢量中刪除矢量的好方法。
'int random = rand()%200;'...在刪除幾個元素並且隨機值超出界限後會發生什麼? –
yup將其更改爲rand()%adjacency_list.size()。 –
做到了 –