所以我有这个片段
vector<int> *adj;
adj = new vector<int>[n];
这是另一种常见的方式
vector<vector<int> adj(n);
以前使用指针的方式可以用来制作2d数组吗?它会像后者一样工作吗?
如果以前的方式使用,如果它可以用于制作2d向量。
我可以使用以前的方式制作2d列表吗?
对于那些想知道以前的方法的人来说是错误的制作名单的方式,这对极客来说是极客 http://www.geeksforgeeks.org/topological-sorting/
答案 0 :(得分:0)
有很多方法可以创建多维向量,但我使用的方法是使用struct,
以下是2X2表
的示例#include<iostream>
#include<vector>
struct table
{
std::vector<int> column;
};
int main()
{
std::vector<table> myvec;
// values of the column for row1
table t1;
t1.column = {1,2};
// Push the first row
myvec.push_back(t1);
// values of the column for row2
table t2;
t2.column = { 3, 4};
// push the second row
myvec.push_back(t2);
// now let us see whether we've got a 2x2 table
for(auto row : myvec)
{
auto values = row.column;
for(auto value : values) std::cout<< value << " ";
std::cout<<"\n";
}
// Now we will try to get a particular value from the column index of a particular row
table row = myvec[1]; // 2nd row
std::cout<<"The value present at 2nd row and 1st column is: "<<row.column[0] <<"\n";
}
给了我,
1 2
3 4
The value present at 2nd row and 1st column is: 3
您可以轻松将其更改为不同的尺寸。
注意:如果有人纠错我的错误,我已将这个答案发给我。谢谢