我正在嘗試使用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