制作2d矢量和列表的不同方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了制作2d矢量和列表的不同方法相关的知识,希望对你有一定的参考价值。

所以我有这个片段

vector<int> *adj;
adj = new vector<int>[n];

这是另一种常见的方式

vector<vector<int> adj(n);

以前使用指针的方式可以用来制作2d数组吗?它会像后者一样工作吗?

此外,如果以前的方式使用,如果它可以用于制作2d向量。

我也可以使用以前的方式制作2d列表吗?

对于那些想知道以前的方法的人来说,错误的制作列表的方式是极客们的极客http://www.geeksforgeeks.org/topological-sorting/

答案

有可能的方法来创建多维向量,但我使用这种方法,利用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<<"
";
    }
    // 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] <<"
";
}

这给了我,

1 2 
3 4 
The value present at 2nd row and 1st column is: 3

您可以轻松地将其更改为不同的尺寸。

注意:如果有人纠正我的错误,我已将这个答案发给我。谢谢

以上是关于制作2d矢量和列表的不同方法的主要内容,如果未能解决你的问题,请参考以下文章

XNA 2D 矢量角度 - 计算的正确方法是啥?

在访问该类的函数时,如何在我的类的 2D 矢量上使用点运算符?

必备技能~程序员如何快速制作不同颜色不同大小的icon?

矢量类型的模板类专业化 - 不同的有效语法?

在 2D 矢量中的预定位置更改多个值的最简单方法是啥?

使用纵横比旋转2D矢量