2

从 C# 到 C++ 的等效项是什么:

int[n][num] card;
someFunction(card[0]);


someFunction(int[] card)
{
    ....
}

在 C++ 中使用向量


这是 C++ 中的代码:

std::vector< std::vector <int> > a(numA, vector<int>());

相当于 C# 中的这段代码?:

int[][] a = new int[numA][];

如果不是,请告诉我应该如何。谢谢。

4

2 回答 2

2

我不知道 C# 但这看起来不错

std::vector< std::vector<int> > card;
someFunction(card[0]);


void someFunction(const std::vector<int>& card)
{
    ....
}

用于&指示您通过引用传递向量,以避免复制向量本身的开销。如果要someFunction修改向量,请删除const.

您的其他代码看起来也不错。

于 2013-09-21T07:54:17.787 回答
1
vector<vector<int> > card(n, std::vector<int>(num));
someFunction(card[0]);

someFunction(vector<int> vec)
{
    ....
}

这个:

std::vector< std::vector <int> > a(numA, vector<int>());

更简单

std::vector< std::vector <int> > a(numA);

C++ 锯齿状数组等价于:

int[][] a = new int[numA][];
于 2013-09-21T07:47:06.543 回答