그래프 용 코드를 C++로 작성하고 있지만 문제가 있습니다. 제대로 작동하지 않습니다. 문제가 무엇인지 도와주세요. 사용자 및 그래프의 각 에지에 대한 그래프에 대한 입력을 취할 수있는 그래프의 코드는 특정 가중치를가집니다. 다음은 코드입니다 :내 C++ 코드가 그래프에서 작동하지 않습니다.
#include <iostream>
#include <vector>
using namespace std;
struct edge {
char src;
char dest;
int weight;
};
class Graph {
public:
vector<edge> edges;
int size,j=0;
//Constructor
Graph(int c) {
size=c;
}
void graphDesign(char s,char d,int w) {
edges[j].src=s;
edges[j].dest=d;
edges[j].weight=w;
j++;
}
void printGraph() {
for(int i=0; i<size; i++) {
cout<<edges[i].src<<"->"<<edges[i].dest<<" :
<<edges[i].weight<<endl;
}
}
};
int main() {
int e,i,w;
char s,d;
cout<<"Enter number of edges of graphs: ";
cin>>e;
Graph graph(e);
for(i=0; i<e; i++) {
cout<<"Enter source: ";
cin>>s;
cout<<"Enter destination: ";
cin>>d;
cout<<"Enter weight of the edge: ";
cin>>w;
graph.graphDesign(s,d,w);
}
graph.printGraph();
return 0;
}
조언 - 'size'와 같은 관계없는 변수를 사용하여 컨테이너의 항목 수를 나타내지 않습니다. 컨테이너가 제공하는 것을 사용하십시오 (예 :'vector :: size()'). 불필요한 변수를 사용하면 크기가 변경 될 때 해당 변수를 업데이트하지 않기 때문에 버그가 발생할 위험이 있습니다. 당신의 코드는 이것의 증거입니다 - edges.size()는 무엇입니까? 나는 그것이 당신이 믿는 것이 아니라고 확신합니다. – PaulMcKenzie
"제대로 작동하지 않는다"는 말을 자세히 설명해 주시겠습니까? 어떻게 작동하지 않습니까? – 1201ProgramAlarm
처음 값을 입력 할 때 몇 시간 동안 값을 물어 보는 동안 get이 끝나면 모든 값이 출력됩니다. –