Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 是否有任何方法可以将元素添加到列表中,如图所示?_C++_List_Vector_Graph - Fatal编程技术网

C++ 是否有任何方法可以将元素添加到列表中,如图所示?

C++ 是否有任何方法可以将元素添加到列表中,如图所示?,c++,list,vector,graph,C++,List,Vector,Graph,我正在尝试向向量中的列表添加元素。addEdge方法中发生错误,因为它无法访问所需的容器(分段错误)。图形是一个向量,其中每个容器包含一个连接到它的顶点列表(以及该边的权重,在本例中为0) M是边的数量,n是顶点的数量。我以前用简单数组做过很多次,但还没有用向量做过。 该课程包括: int n; int m; bool directed; std::vector<std::list<std::pair<int, int>>> graph; intn; int

我正在尝试向向量中的列表添加元素。addEdge方法中发生错误,因为它无法访问所需的容器(分段错误)。图形是一个向量,其中每个容器包含一个连接到它的顶点列表(以及该边的权重,在本例中为0)

M是边的数量,n是顶点的数量。我以前用简单数组做过很多次,但还没有用向量做过。 该课程包括:

int n;
int m;
bool directed;
std::vector<std::list<std::pair<int, int>>> graph;
intn;
int m;
布尔定向;
向量图;
graph.reserve(n)
之后,
graph.size()
仍然为零<代码>保留
影响向量的容量,而不是其大小。然后,
graph[x-1]
通过访问索引越界(任何
x
值都会产生索引越界,因为向量为空)


您可能是指
图形。调整大小(n)

不确定要执行的操作。。。是否要将项目添加到图表中的列表中,还是将列表添加到图表中?我无法获取图表的容器格式。为什么要使用
std::list
?为什么不直接使用
std::map
,其中
Edge
是一个包含更多信息的类型(如果需要)。第一个方法(构造函数)中肯定有输入错误。什么是线上的
图形
?另外,我不明白你想做什么,为什么向我们展示这两种方法/函数。这是更好的解决方案吗?我知道我占用了更多的内存,但在地图上搜索的时间复杂度是多少?是log n吗?@Vojin我们还是不知道你想干什么。图形的容器看起来不像是一个简单的图形。请在问题中添加更多信息。是
std::map
是O(logn)<代码>标准::无序映射
为O(1)。
int n;
int m;
bool directed;
std::vector<std::list<std::pair<int, int>>> graph;