更新时间:2016-08-08 09:51:21浏览次数:1+次
}
修改为:
double *XValues = new double[numPoints];
double *YValues = new double[numPoints];
for (int x = 0; x < numPoints; x++)
{
for (int i = 0; i < 10; i++)
{
XValues[x] = (float)x + 0.1*i;
YValues[x] = (float)x + 0.1*i;
}
} 结果 向量里面保存了所有的数,而动态数组 值保存了几个?这里动态数组改怎么表达才对?
int allPointCount=numPoints*10;
int allIndex=0;
double *XValues = new double[allPointCount];
double *YValues = new double[allPointCount];
for (int x = 0; x < numPoints; x++)
{
for (int i = 0; i < 10; i++)
{
XValues[allIndex] = (float)x + 0.1*i;
YValues[allIndex] = (float)x + 0.1*i;
allIndex++;
}
}
遇到循环的问题,冷静下来分析循环遍历的变化,对总次数和循环遍历的过程要理清楚。同时,尽量让循环索引和数组计数独立开,以免混在一起,最后懵逼了。
建议:
既然作为点来处理数据,请使用结构体组织一个点的两个数据,而不是用两个数组。因为这两个数据是一个整体,不能脱离的。用两个数组就独立开来了,只有你刻意去组起来使用,才是两个点,其他人一开始很难知道你这么用。对于形式上应该组合在一起的数据,也就是几个数据是一个整体数据类型的一部分的,用结构体组合在一起。使用时方便,理解时容易。而且结构体使用也很简单。也就是你可以自己定义一个点结构体,代码如下:
struct POINT
{
double x;
double y;
};
这样,你只需要创建一个POINT结构体数组,这样代码逻辑更加清楚了。再次改进后的代码如下:
int allPointCount=numPoints*10;
int allIndex=0;
POINT * pPoint = new POINT[allPointCount];
for (int x = 0; x < numPoints; x++)
{
for (int i = 0; i < 10; i++)
{
pPoint[allIndex].x = (float)x + 0.1*i;
pPoint[allIndex].y = (float)x + 0.1*i;
allIndex++;
}
}
加油吧。C++技术网是你学习的坚强后盾。每一个解答绝不局限于你问题答案本身,会尽量全面分析和回答以及延伸,帮助你全面的了解学习。
相关资讯