J'essaie de modéliser un réseau en utilisant C++. J'ai une structure appelée NetworkConnection :
struct NetworkConnection {
int i, j, weight;
}
et j'ai une classe appelée Network
class Network {
public:
std::vector<NetworkConnection> connections_for(int i) {
return connections[i];
}
void connect(int i, int j, int weight) {
NetworkConnection connection;
connection.i = i;
connection.j = j;
connection.weight = weight;
connections[i].push_back(connection)
}
private:
std::vector< std::vector<NetworkConnection> > connections;
}
Mon problème est que j'obtiens des erreurs de segmentation lorsque j'appelle connections_for(i), en particulier dans le constructeur de la copie. Cependant, les circonstances exactes de cette erreur varient d'une exécution à l'autre de l'application. J'ai essayé d'utiliser un vecteur de pointeurs et un vecteur de vecteurs de pointeurs comme suit :
std::vector< std::vector<NetworkConnection> * > connections;
std::vector< std::vector<NetworkConnection *> > connections;
avec les ajustements appropriés à l'interface mais cela n'a pas résolu le problème. Je ne sais pas comment résoudre ce problème.
Qu'est-ce que je fais de mal ici ? Ou alternativement, comment modéliser un réseau en C++ avec une interface similaire à celle ci-dessus ?