gpt4 book ai didi

c++ - 如何检查 vector 是否指向 C++ 中二维 vector 中的空 vector ?

转载 作者:行者123 更新时间:2023-11-28 00:13:58 25 4
gpt4 key购买 nike

所以,我有以下情况:

我将整数 vector 的 vector 声明为 vector < vector<int> > edges .基本上,我正在尝试使用上面的图实现一个图,其中图定义如下:

class graph
{
public:
int vertices;
vector < vector<int> > edges;
};

现在,在插入边的过程中,我将输入作为起始顶点和结束顶点。现在,我想做这样的事情:

void insert(int a, int b, graph *mygraph) // a is starting vertex and b is ending vertex
{
auto it = mygraph->edges.begin();
//int v = 1;
vector<int> foo;
foo.push_back(b);
if (mygraph->edges[a].size() != 0) // Question here?
mygraph->edges[a].push_back(b);
else
mygraph->edges.push_back(foo);

return;
}

现在,在标有 Question here 的行中,基本上,我想检查该特定条目的 vector 是否存在? size实际上是错误的,因为我试图在不存在的 vector 上调用大小操作。换句话说,我想检查 vector vector 中的特定位置是否存在 vector 。我该怎么做?像,mygraph->edges[a] != NULL

最佳答案

只需检查a 不超过 vector 的大小。如果是,则调整外部 vector 的大小。

void insert(int a, int b, graph &mygraph) { // a is starting vertex and b is ending vertex
if (a >= mygraph.edges.size())
mygraph.edges.resize(a+1);
mygraph.edges[a].push_back(b);
}

关于c++ - 如何检查 vector 是否指向 C++ 中二维 vector 中的空 vector ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31517313/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com