• 8966阅读
  • 9回复

【提问】看qtopia源码时遇到的一个问题 [复制链接]

上一主题 下一主题
离线deweyjew
 

只看楼主 倒序阅读 楼主  发表于: 2005-09-22
请教一个问题(qtopia中的部分代码):

代码如下:
typedef QMap< QString, QString > ConfigGroup;
typedef QMap< QString, ConfigGroup> ConfigGroupMap;

QMap< QString, ConfigGroup > groups;

ConfigGroupMap::Iterator git;

void Config::writeEntry( const QString &key, const QString &value )
{
  if ( git == groups.end() ) {
    qWarning( "no group set" );
    return;
  }
  if ( (*git)[key] != value ) {
    ( *git ).insert( key, value );
    changed = TRUE;
  }
}


这里的(*git)[key] != value和( *git ).insert( key, value )看不懂
(*git)[key]表示的ConfigGroup,怎么和string比较
( *git )指向的是ConfigGroupMap还是ConfigGroup?如果是ConfigGroup就能理解了。

请点拨一下,thx a lot!
[ 此贴被XChinux在2005-09-22 18:39重新编辑 ]
离线wonder
只看该作者 1楼 发表于: 2005-09-22
(*git )指向的是ConfigGroup
离线guhuo
只看该作者 2楼 发表于: 2005-09-22
typedef QMap< QString, QString > ConfigGroup;      

ConfigGroupMap::Iterator git;               都是什么意思啊,? 不懂。。。
嵌入式linux嘿嘿
qq:
15416920
离线deweyjew

只看该作者 3楼 发表于: 2005-09-23
git应该是指向ConfigGroupMap的吧?
(*git)为什么是指向ConfigGroup?
我的理解是(*git)表示的是ConfigGroupMap的一个对象
离线XChinux

只看该作者 4楼 发表于: 2005-09-23
git是ConfigGroupMap的迭代子(学过STL就应该知道它的),用来遍历ConfigGroupMap的
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线deweyjew

只看该作者 5楼 发表于: 2005-09-23
stl没用过,只看过c++primer中关于Iterator的一些内容(好像和这里的用法不一样)。
我知道git是ConfigGroupMap的迭代子,用来遍历ConfigGroupMap的
那么,(*git)表示的应该是ConfigGroupMap吧??

按照primer中的说法:(*git)表示的是ConfigGroupMap
                          (*git).first表示的是string
                        (*git).second表示的是ConfigGroup

(*git)[key]具体表示什么呢?表示ConfigGroup,还是string?
望老大解答一下,谢谢!
离线XChinux

只看该作者 6楼 发表于: 2005-09-23
ConfigGroup
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线deweyjew

只看该作者 7楼 发表于: 2005-09-23
小弟资质愚顿
老大能不能说的清楚点啊
具体是哪个代表ConfigGroup?
为什么呢??
离线XChinux

只看该作者 8楼 发表于: 2005-09-23
git不是是iterator
*git代表它所指向的那个对象
(*git)[i ]代表Map里映射到的那个对象
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线deweyjew

只看该作者 9楼 发表于: 2005-09-23
对啊,
*git表示它所指向的那个对象(我理解的是ConfigGroupMap类型的对象)
(*git)[i ]代表Map里映射到的那个对象(这个对象,我理解的是ConfigGroup类型的对象)
这样下面的程序就解释不通了啊
我想知道的是:为什么*git所指向的那个对象是ConfigGroup类型的?
是本来机制就是这样吗?(我看到的c++primer好像不是这样)
还是QMap的iterator就是这样实现的?
快速回复
限100 字节
 
上一个 下一个