我正在尝试使用C++对网络建模。我有一个名为NetworkConnection结构:使用矢量矢量建模网络
struct NetworkConnection {
int i, j, weight;
}
,我有一个叫做网络
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;
}
类现在我的问题是调用connections_for(我)当我得到段错误,特别是在拷贝构造函数。然而令人困惑的是,segfault的确切情况在应用程序的不同运行之间有所不同。我一直在使用指针的向量和指针的载体,像这样一个向量尝试:
std::vector< std::vector<NetworkConnection> * > connections;
std::vector< std::vector<NetworkConnection *> > connections;
与该接口进行适当的调整,但没有解决问题。现在我对如何解决这个问题感到不知所措。
我在这里做错了什么?或者,您将如何使用类似于上述的界面在C++中对网络进行建模?
我与段错误的问题竟然是无关的。然而,我在建模网络时采取了这种方法。 – derfred 2010-03-05 23:01:22