如何 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);