1

我正在将 JavaScript 代码移植到 C++ 。

伪代码:

如果 n = 1 则追加(订单,订单)

JavaScript(订单和订单是数组):

var order = new array();
var orders = new array();
//....
if (n == 1)
{
    orders[orders.length] = order.slice(); // append copy
}

我在 C++ 中使用向量而不是数组。我认为 C++ 代码应该只是:

vector<int> order;
vector<vector<int> > orders;
//.....
orders.push_back(order)

此代码对于上述伪代码和 javascript 代码是否正确?

4

1 回答 1

1

您有一个条件n == 1,我不知道您为什么在 C++ 实现中跳过了它。
在你说你slice()用来制作原始列表的副本的评论中,所以你也需要在你的 C++ 实现中做同样的事情。

vector< vector<int> > orders;
vector<int> order;
//and to clone and append
std::vector cloned;
std::copy(order.begin(), order.end(), std::back_inserter(cloned));
if(n == 1)
   orders.push_back(cloned);
于 2012-08-13T16:17:25.720 回答