raj*_*jat 0 javascript c++ arrays
我试图将以下JavaScript代码移植到C++:
var vector = new array();
for (var i = 0; i < points.length; i++)
{
var newX = points[i].X * cos - points[i].Y * sin;
var newY = points[i].Y * cos + points[i].X * sin;
vector[vector.length] = newX;
vector[vector.length] = newY;
sum += newX * newX + newY * newY;
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法理解这些方面发生了什么:
vector[vector.length] = newX;
vector[vector.length] = newY;
Run Code Online (Sandbox Code Playgroud)
覆盖数组中相同位置的值有什么作用?
JavaScript数组会动态扩展以容纳新元素,因此要附加新项目,只需分配给下一个可用索引.
数组索引是从零开始的,因此给定一个名为"vector"的数组,vector.length是一个超过最后一个元素的数组.什么都没有被覆盖; 该行vector[vector.length] = x附加x到数组的末尾.
在JavaScript中,以下附加元素的方法是相同的,尽管使用push更清楚地表明了您的意图:
vector = [1,2,3];
vector[vector.length] = 4; // [1,2,3,4]
vector.push(5); // [1,2,3,4,5]
Run Code Online (Sandbox Code Playgroud)
等效的C++代码(假设你正在使用std::vector)会
my_vector.push_back(newX);
Run Code Online (Sandbox Code Playgroud)