如何初始化整数向量的向量?
如果我有一个2D矢量(基本上代表一个图,第一列是最初的顶点,第二列是最后一个顶点),像这样,vector<vector<int> > myvec
;如何初始化整数向量的向量?
我想存储这样的事情,
0 -> 1 2
1 -> 2 3
2 -> 3 4
3 -> 4 5
5 -> 1 2
如果我要初始化myvec
,那就是,做这样的事情与行的总数量(顶点数),然后我可以插入在适当的位置上的第二个顶点,初始化后IE浏览器(如果我进入顶点为6号),我希望它是这个样子,
0 ->
1 ->
2 ->
3 ->
4 ->
5 ->
,然后我可以使用插入相应的边缘,
myvec[startingvertex].push_back(endingvertex) // with starting vertex and ending vertex taken as input
我该怎么办?谢谢!
编辑:我有:
class graph
{
int vertices;
vector<vector<int> > edges;
}
在main
,我做的
int main (void)
{
int i,n;
cout<<"How many vertices do you wish to enter\n";
cin>>n;
graph *mygraph = new graph;
mygraph->vertices = n;
mygraph->edges // How can I initialise it here?
......... // Rest of the code
}
你能帮助我的上述评论的问题以下?
谢谢!
// Create myvec with 6 elements in it.
vector<vector<int> > myvec(6);
// Add items to the first item of myvec
myvec[0].push_back(1);
myvec[0].push_back(2);
// Add items to the sixth item of myvec
myvec[5].push_back(10);
myvec[5].push_back(25);
更新
如下实施的构造:
class graph
{
public:
grapah(int n) : edges(n) {}
vector<vector<int> > edges;
};
而且使用它作为:
graph *mygraph = new graph(n);
你不需要的成员变量vertices
自起是顶点的数量。
尺寸可以变化吗?就是说,'int v; CIN >> V;矢量
@JohhnLui,是的大小可以是一个变量。这是一个运行时间参数。 –
太好了,谢谢你的帮助。 :) –
只需使用:
myvec.resize(NUMBER_OF_VERTICES);
然后,您可以:
myvec[startingvertex].push_back(endingvertex);
来填补你的载体。
downvote的原因是什么? –
您应该提交一个新问题,而不是编辑原始帖子 – yizzlez