При чтении из вектора я помещаю значения в я получил нулевой размер.У меня есть:
class Graph {
public:
vector<Vertex> vertices;
};
class Vertex {
public:
vector<int> adjacentVertices;
};
В моем методе загрузки тогда:
int vertices, edges;
cin >> vertices >> edges;
Graph mainGraph;
mainGraph.vertices.reserve(static_cast<unsigned int>(vertices));
int tmp1, tmp2;
for (int i = 0; i < edges; i++) {
cin >> tmp1 >> tmp2;
mainGraph.vertices[tmp1].adjacentVertices.push_back(tmp2);
cout << mainGraph.vertices[tmp1].adjacentVertices.size(); //PRINTS NUMBERS -> SEEMS OKAY
}
cout << mainGraph.vertices.size(); //IS ZERO???
for(const Vertex &v : mainGraph.vertices){ //CRASHES
cout << v.adjacentVertices.size();
}
Могу поспорить, что это очень глупо, но чего мне не хватает?Я читал, что вектор будет сам конструироваться при использовании, если не требуется специальный конструктор.