我正在將JavaScript代碼移植到C++。將JavaScript Array.slice +隱式擴展轉換爲C++向量
僞代碼:
如果n = 1,則APPEND(訂單,訂單)
的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)
這是正確的代碼對於上述psudeo和JavaScript代碼?
也是'order'一個數組嗎?你的C++代碼沒有提及有關'order.slice()'的任何內容。 'slice()'也有兩個參數。你沒有。這並不能說明你的意圖。你也不需要'orders.length'。即使在javascript中也有array.push()方法 – 2012-08-13 15:58:02
我編輯過這個問題,並且當參數不存在時它會複製整個數組。我有僞代碼和JavaScript,給定的JavaScript是正確的執行僞代碼,我需要將它們轉換爲C++。 – rajat 2012-08-13 16:05:23
如果您正在複製整個數組,那麼這裏沒有任何「切片」。它是克隆而已。你真的需要一個深層的副本嗎?在你的C++實現中,你已經沒有實現克隆部分 – 2012-08-13 16:09:20