• 16984阅读
  • 5回复

const QVector<QPointF> &data  用法问题 [复制链接]

上一主题 下一主题
离线ssh_2008
 

只看楼主 倒序阅读 楼主  发表于: 2010-07-19
      在trypixmap.h头文件中定义:
public:
    void setPlotSettings(const PlotSettings &settings);
    void setCurveData(int id, const QVector<QPointF> &data);
    void refreshPixmap();
    QVector<QPointF> buffer[100];
    void fun();



     在trypixmap.cpp文件中 我想将buffer中的数据传送给 setCurveData()函数,具体实现如下:
trypixmap::trypixmap(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::trypixmap)
{
    ui->setupUi(this);
     .......
 
    fun();
    setCurveData(1,&buffer);
     ......
}

void trypixmap::fun()
{
    double x,y;
    for(int i=0;i<100;i++)
    {
        x=i/10.0;
        y=5*(sin(x*10)+1);
        buffer<<QPointF(x,y);
    }
}

void trypixmap::setCurveData(int id, const QVector<QPointF> &data)
{
curveMap[id] = data;
refreshPixmap();
}


编译时报错,具体错误如下截图:
[ 此帖被ssh_2008在2010-07-19 16:43重新编辑 ]
离线dbzhang800

只看该作者 1楼 发表于: 2010-07-19
引用楼主ssh_2008于2010-07-19 16:32发表的 const QVector<QPointF> &data  用法问题 :
QVector<QPointF> buffer[100];


大概你是想要一个包含 100 个元素的 QVector,可是你却定义了一个包含 100 个 QVector 的数组。

如果换成 int(你想要一个值为100的整数,却定义一个包含100个整数的数组),我想你很清楚下面二者的区别:

int a(100);
int a[100];
离线ssh_2008

只看该作者 2楼 发表于: 2010-07-19
嗯。我注意到这个问题了。】
我改成了  QVector<QPointF> buffer;
现在改正后又出现新的问题了。
离线paranoid
只看该作者 3楼 发表于: 2010-07-19
fun();
setCurveData(1,&buffer);
需要搞清楚取地址和引用的不同
离线ssh_2008

只看该作者 4楼 发表于: 2010-07-19
引用第3楼paranoid于2010-07-19 20:35发表的 :
fun();
setCurveData(1,&buffer);
需要搞清楚取地址和引用的不同

嗯。这个问题我在之前编译前修改了。只是在这里上传程序时忘了改。 如果不改,编译后报错,错误截图如下。

改过之后的 setCurveData(1,buffer);
但是改过之后的问题就是上面的那个问题。搞不懂问题出哪里了
离线dbzhang800

只看该作者 5楼 发表于: 2010-07-19
引用第4楼ssh_2008于2010-07-19 20:54发表的  :
嗯。这个问题我在之前编译前修改了。只是在这里上传程序时忘了改。 如果不改,编译后报错,错误截图如下。
改过之后的 setCurveData(1,buffer);
但是改过之后的问题就是上面的那个问题。搞不懂问题出哪里了
.......

运行时错误,还是自己慢慢去调试吧。而且都明确提示 index 越界了,应该不会太困难
快速回复
限100 字节
 
上一个 下一个