社区
Qt
帖子详情
QVector问题
lizheng092
2010-05-25 08:57:49
有如下定义:
QVector<QVector<double> > *test = new QVector<QVector<double> >;
如何对test中的元素进行操作?比如test中含有5*5个元素,如何获取其中(3,3)位置的元素,并对其进行操作?
...全文
880
17
打赏
收藏
QVector问题
有如下定义: QVector<QVector > *test = new QVector<QVector >; 如何对test中的元素进行操作?比如test中含有5*5个元素,如何获取其中(3,3)位置的元素,并对其进行操作?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
17 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
superlemonym
2012-04-21
打赏
举报
回复
请问QVector<QVector<QPoint> >这个怎么用?我想用这个数组画出多条折线,点击左键,画连续的的折线,点击右键,再重新开始画另一条线,该怎么办?求高手指教啊。。
donwmufromdying
2010-05-27
打赏
举报
回复
顺便再问一个:在函数里,怎样返回一个局部变量的指针或引用?
我在一个函数里有一个QVector<QVector <double> * > test,想返回test里面的数据,这个怎么做方便?直接返回时,由于函数返回时,这个指针就编程悬垂指针了,不能得到正确结果。
一般,函数中的局部变量的指针或者引用是不能作为返回类型的,因为出了函数生命周期结束了.关于你的问题是这样的:
QVector<QVector <double> * > foo()
{
QVector<QVector <double> * > test;
test.append(new QVector <double>());
return test;
}
这样没问题.
就是要记得在外边delete掉new出来的东西
比如:
QVector<QVector <double> * > gettor = foo();
qDeleteAll(gettor);
donwmufromdying
2010-05-26
打赏
举报
回复
话说回来,何必用new来使用vector呢?
donwmufromdying
2010-05-26
打赏
举报
回复
(*test)[i][j]
lizheng092
2010-05-26
打赏
举报
回复
比如:t1->at(i).at(j) = 1.0;
data = t1->value(i)[j];
data *= 2.5; // 能实现乘法操作
data1 = t1->value(i)[j];
t1->value(i)[j] *= 2.5;
// 不能实现乘法操作,为什么???
data1 = t1->value(i)[j];
data2 = t1->value(i)[j];
t1->value(i)[j] = t1->value(i)[j] *2.5; // 不能实现乘法操作,操作完之后数值不变。
data2 = t1->value(i)[j]; //
data3 = t1->value(i)[j];
t1->value(i)[j] += 1.0;
// 不能实现加法操作,为什么???
data3 = t1->value(i)[j];
data4 = t1->at(i).at(j); // at().at()只能当右值
data5 = t1->value(i).value(j); // value().value()应该可以当左值的啊,但t1->value(i).value(j) *= 2.5编译报错,显示*= 左操作数必须为左值
麻烦大家帮我看看这是为什么?我想对t1->at(i).at(j)位置的数进行一些比如乘一个数,加一个数之类的操作。
lizheng092
2010-05-26
打赏
举报
回复
[Quote=引用 3 楼 dext 的回复:]
不能用
test[i][j] 吗?
[/Quote]
test是指针,这样用报错。
zhangweiit
2010-05-26
打赏
举报
回复
QVector<QVector <double> * > *fun(QVector<QVector <double> * > *test);
//这里返回的指针,也是指向test的,放在返回值里只是为了使用简便,类似于strcpy
一般指针函数返回的指针,其实都是在调用函数前就已经创建的
zhangweiit
2010-05-26
打赏
举报
回复
[Quote=引用 13 楼 lizheng092 的回复:]
顺便再问一个:在函数里,怎样返回一个局部变量的指针或引用?
我在一个函数里有一个QVector<QVector <double> * > test,想返回test里面的数据,这个怎么做方便?直接返回时,由于函数返回时,这个指针就编程悬垂指针了,不能得到正确结果。
[/Quote]
如果要避免野指针问题的话,最好把这个test作为传入参数
void fun(QVector<QVector <double> * > *test);
lizheng092
2010-05-26
打赏
举报
回复
顺便再问一个:在函数里,怎样返回一个局部变量的指针或引用?
我在一个函数里有一个QVector<QVector <double> * > test,想返回test里面的数据,这个怎么做方便?直接返回时,由于函数返回时,这个指针就编程悬垂指针了,不能得到正确结果。
lizheng092
2010-05-26
打赏
举报
回复
[Quote=引用 6 楼 foxyz 的回复:]
(*test)[i][j]
[/Quote]
这个可以,多谢。小弟C++基础不好,以后多多指教!
pcenshao
2010-05-26
打赏
举报
回复
*test[i][j]
zhangweiit
2010-05-26
打赏
举报
回复
<template T>
T *vpos(QVector<QVector<T>> *v,size_t i,size_t j)
zhangweiit
2010-05-26
打赏
举报
回复
除非楼主专门写个函数
<template T>
T *vpos(QVector<QVector<T>>,size_t i,size_t j)
zhangweiit
2010-05-26
打赏
举报
回复
test->value(i)[j]
个人觉得,这样已经比较简单了,毕竟这是一个二维数组,而且又是指针,
dext
2010-05-26
打赏
举报
回复
不能用
test[i][j] 吗?
lizheng092
2010-05-25
打赏
举报
回复
[Quote=引用 1 楼 killua_hzl 的回复:]
C/C++ code
test->at(3).at(3)
[/Quote]
自己试了一下,test->at(i).at(j)为只读;
test->value(i)[j]则可作为左值。感觉这样操作起来挺麻烦的,有没有更简单一点的方法?
核动力蜗牛Killua
2010-05-25
打赏
举报
回复
test->at(3).at(3)
QT,
QVector
基本用法,遍历[实例讲解] - 小皮球的博客 - CSDN博客1
前言说起线程池大家肯定不会陌生,在面试中属于必问的
问题
之一,特别是对于高并发有较高要求的企业,基本是核…阅读数 1万+反转!BAT编程吸金榜来了,AI程序员刷爆
QVector
常见使用方法 - 浅浅念 - 博客园1
QVector
常见使用方法 - 浅浅念 - 博客园随笔- 68 文章- 0 评论- 14博客园 首页 新随笔 联系 管理 订阅
QVector
常见使用方法仅在此简
重复填充
QVector
items
,在源vector上 ,每一个item 补充10个
qt Android
QVector
的push-back导致软件异常退出
在打开文件向
QVector
中加入数据时,出现异常退出情况,添加打印、断点跟踪等手段进行调试,发现在window下一切正常,但是在Android环境下不行,经过排查,发现定义的QDateTime对象没有进行赋值,导致软件异常退出。
Qt
16,240
社区成员
26,660
社区内容
发帖
与我相关
我的任务
Qt
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
复制链接
扫一扫
分享
社区描述
Qt 是一个跨平台应用程序框架。通过使用 Qt,您可以一次性开发应用程序和用户界面,然后将其部署到多个桌面和嵌入式操作系统,而无需重复编写源代码。
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章