qt编程,两个QString的值呼唤。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了qt编程,两个QString的值呼唤。相关的知识,希望对你有一定的参考价值。

我定义了一个数据结构QMap<QString,Student>contacts,其中Student是一个类。
现在要对contacts中的数据排序(按QString的值升序排列),下面是代码(冒泡排序法),但是出错了,求教,在线等~~
QMap<QString,Student>::iterator i=contacts.begin();

QMap<QString,Student>::iterator j=i+1;

for(;i!=contacts.end();i++,j++)
if(i.key()<j.key())


Student student2=j.value();

QString c=j.key();

j.key()=i.key(); //错误:passing 'const QString' as 'this' argument of 'QString& //QString::operator=(const QString&)' discards qualifiers [-fpermissive]

j.value()=i.value();

i.key()=c;

i.value()=student2;



是不是QString不能直接=赋值啊?新手,求帮助!!!

'const QString' 这个关键词是const ,既然是常量肯定不能通过直接复、赋值改变其值。而且你算法实现根本没有考虑map这种数据结构内部的实现,基本上可以用sort完成你所预想的目的,但是需要你自己确定比较方式和处理方式。您去读一下stl如何,推荐《泛型编程和STL》这本书。 参考技术A 'const QString' 这个关键词是const ,既然是常量肯定不能通过直接复、赋值改变其值。而且你算法实现根本没有考虑map这种数据结构内部的实现,基本上可以用sort完成你所预想的目的,但是需要你自己确定比较方式和处理方式。您去读一下stl如何,推荐《泛型编程和STL》这本书。本回答被提问者采纳 参考技术B

以上是关于qt编程,两个QString的值呼唤。的主要内容,如果未能解决你的问题,请参考以下文章

Qt出现常量有换行符怎么办

新装的vs2010+Qt集成环境,编程时为何不能识别<QString>,<QTextCodec> <QtGui/QApplication>等头文件

Qt QString 和 LPCWSTR 的相互转换

qt怎么把qstring转为float

qt qstring 格式问题

如何在用qt creator调试时显示qstring的值