QMap for string to int (转)
时间:2010-12-22 来源:wumao2
/*
* Copyright (c) 2006-2007, Johan Thelin
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of APress nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <QMap>
#include <QHash>
#include <QSet>
#include <QMultiMap>
#include <QMultiHash>
#include <QString>
#include <QtDebug>
void mapStringIntDemo()
{
QMap<QString, int> map;
map["foo"] = 42;
map["bar"] = 13;
map["baz"] = 9;
QString key;
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
QMap<QString, int>::ConstIterator ii;
for( ii = map.constBegin(); ii != map.constEnd(); ++ii )
qDebug() << ii.key() << " = " << ii.value();
int sum;
sum = map["foo"] + map.value("ingenting");
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
sum = map["foo"] + map["ingenting"];
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
}
void hashStringIntDemo()
{
QHash<QString, int> hash;
hash["foo"] = 42;
hash["bar"] = 13;
hash["baz"] = 9;
QString key;
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
int sum;
sum = hash["foo"] + hash.value("ingenting");
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
sum = hash["foo"] + hash["ingenting"];
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
}
class Person
{
public:
Person( QString name, QString number );
QString name() const;
QString number() const;
private:
QString m_name, m_number;
};
Person::Person( QString name, QString number ) : m_name( name ), m_number( number ) {}
QString Person::name() const { return m_name; }
QString Person::number() const { return m_number; }
bool operator==( const Person &a, const Person &b )
{
return (a.name() == b.name
* Copyright (c) 2006-2007, Johan Thelin
*
* All rights reserved.
*
* Redistribution and use in source and binary forms, with or without modification,
* are permitted provided that the following conditions are met:
*
* * Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* * Redistributions in binary form must reproduce the above copyright notice,
* this list of conditions and the following disclaimer in the documentation
* and/or other materials provided with the distribution.
* * Neither the name of APress nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
*
* THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR
* CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
* EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
* PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
* PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
* SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
*
*/
#include <QMap>
#include <QHash>
#include <QSet>
#include <QMultiMap>
#include <QMultiHash>
#include <QString>
#include <QtDebug>
void mapStringIntDemo()
{
QMap<QString, int> map;
map["foo"] = 42;
map["bar"] = 13;
map["baz"] = 9;
QString key;
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
QMap<QString, int>::ConstIterator ii;
for( ii = map.constBegin(); ii != map.constEnd(); ++ii )
qDebug() << ii.key() << " = " << ii.value();
int sum;
sum = map["foo"] + map.value("ingenting");
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
sum = map["foo"] + map["ingenting"];
foreach( key, map.keys() )
qDebug() << key << " = " << map[key];
}
void hashStringIntDemo()
{
QHash<QString, int> hash;
hash["foo"] = 42;
hash["bar"] = 13;
hash["baz"] = 9;
QString key;
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
int sum;
sum = hash["foo"] + hash.value("ingenting");
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
sum = hash["foo"] + hash["ingenting"];
foreach( key, hash.keys() )
qDebug() << key << " = " << hash[key];
}
class Person
{
public:
Person( QString name, QString number );
QString name() const;
QString number() const;
private:
QString m_name, m_number;
};
Person::Person( QString name, QString number ) : m_name( name ), m_number( number ) {}
QString Person::name() const { return m_name; }
QString Person::number() const { return m_number; }
bool operator==( const Person &a, const Person &b )
{
return (a.name() == b.name
相关阅读 更多 +