如何 cin 边缘到每个顶点?
How to cin edges to each vertex?
我是面向对象编程的新手。我正在尝试为每个顶点输入边,但似乎没有任何效果。
我想在 1 行上将两个数字写入控制台。例如,如果 n = 4 和 m = 3,我可以在控制台中写入如下内容:
1 1
2 4
3 4
#include <iostream>
#include <vector>
using namespace std;
class Vertices
{
public:
int color;
vector<Vertices*> neighbours;
};
int main()
{
int m, n;
cin >> m; // edges
cin >> n; // vertices
cout << endl;
Vertices* vertices = new Vertices[n];
for (int i = 0; i < m; i++)
{
// cin edges to each vertex
}
return 0;
}
您需要先从 cin
中读取两个数字:
int src, dst;
cin >> src >> dst;
然后更新对应对象的邻居:
auto srcP = &vertices[src-1];
auto dstP = &vertices[dst-1];
srcP->neighbours.push_back(dstP);
if (src != dst) dstP->neighbours.push_back(srcP);
我是面向对象编程的新手。我正在尝试为每个顶点输入边,但似乎没有任何效果。
我想在 1 行上将两个数字写入控制台。例如,如果 n = 4 和 m = 3,我可以在控制台中写入如下内容:
1 1
2 4
3 4
#include <iostream>
#include <vector>
using namespace std;
class Vertices
{
public:
int color;
vector<Vertices*> neighbours;
};
int main()
{
int m, n;
cin >> m; // edges
cin >> n; // vertices
cout << endl;
Vertices* vertices = new Vertices[n];
for (int i = 0; i < m; i++)
{
// cin edges to each vertex
}
return 0;
}
您需要先从 cin
中读取两个数字:
int src, dst;
cin >> src >> dst;
然后更新对应对象的邻居:
auto srcP = &vertices[src-1];
auto dstP = &vertices[dst-1];
srcP->neighbours.push_back(dstP);
if (src != dst) dstP->neighbours.push_back(srcP);