C++ C++;成对遍历生成核心转储的列表

C++ C++;成对遍历生成核心转储的列表,c++,C++,我已经编写了将边插入到图形中的小程序,它正在生成代码转储。我正在尝试遍历列表数据。gdb调试器显示核心转储位置“cout”; 对于(列表::迭代器it=adj[V]。开始();it!=adj[V]。结束();+it){ cout在函数void Graph::printGraph()中,您正在使用的for循环内部的V对于所有迭代都是相同的。它应该是 for(list::iterator it=adj[i].begin();it!=adj[i].end();+it) 您已声明字符串s,并且未在程序中

我已经编写了将边插入到图形中的小程序,它正在生成代码转储。我正在尝试遍历列表数据。gdb调试器显示核心转储位置
“cout”;
对于(列表::迭代器it=adj[V]。开始();it!=adj[V]。结束();+it){

cout在函数
void Graph::printGraph()
中,您正在使用的for循环内部的
V
对于所有迭代都是相同的。它应该是

for(list::iterator it=adj[i].begin();it!=adj[i].end();+it)

您已声明
字符串s
,并且未在程序中的任何位置使用它。

printGraph()
中:
V
不应用作循环中的索引(需要使用
i
)。 以下代码工作:

 void Graph::printGraph() {
   for(int i=0; i<V; i++){
     string s = to_string(i) + "->";
     for(list<pair<int,int> >::iterator it = adj[i].begin(); it != adj[i].end(); ++it)
         cout<< s << it->first<< " and weight is [" << it->second <<"]"<< endl;
    }
 }
void图形::printGraph(){
for(int i=0;iA是必需的。仅仅因为一个程序在某一特定行上崩溃,这并不意味着这就是错误所在。显示的代码没有明显的错误,但是显示的类违反了,所以这可能是实际的错误;但是没有答案是可能的。
 void Graph::printGraph() {
   for(int i=0; i<V; i++){
     string s = to_string(i) + "->";
     for(list<pair<int,int> >::iterator it = adj[i].begin(); it != adj[i].end(); ++it)
         cout<< s << it->first<< " and weight is [" << it->second <<"]"<< endl;
    }
 }