void fun_container()
{
/*
* 1. QList
*/
qDebug() << "=============QList=============";
QList<QString> list;
{
QString str("This is a test string");
list << str;
}
qDebug()<<list[0]<<" How are you!";
/*
* 2. QLinkedList 是一个链式链表,只能使用迭代器访问数据
*/
qDebug() << "=============QLinkedList=============";
QLinkedList<QString> qLinkedList;
qLinkedList.append("xll");
qLinkedList.append("lulu");
qLinkedList.append("baobao");
/*
* 2.1 QLinkedList Java iterator
*/
qDebug()<<"2.1 QLinkedList Java iterator";
QLinkedListIterator <QString> iterator(qLinkedList);
while(iterator.hasNext())
{
qDebug()<< iterator.next();
}
/*
* 2.2 QLinkedList STL iterator
*/
qDebug()<<"2.2 QLinkedList STL iterator";
QLinkedList<QString>::Iterator it_qlinkedlist;
it_qlinkedlist = qLinkedList.begin();
for (it_qlinkedlist = qLinkedList.begin(); it_qlinkedlist != qLinkedList.end(); it_qlinkedlist++) {
qDebug() << *it_qlinkedlist;
}
/*
* 3. QVector
*/
qDebug() << "=============QVector=============";
QVector <QString> qVector(3);
qVector.append("xll");
qVector[1] = "lulu";
qVector.append("baobao");
/*
* 3.1 QVector Java iterator
*/
qDebug() << "3.1 QVector Java iterator";
QVectorIterator <QString> it_vector(qVector);
while (it_vector.hasNext()) {
qDebug() << it_vector.next();
}
/*
* 3.2 QVector STL iterator
*/
qDebug() << "3.2 QVector STL iterator";
QVector<QString>::Iterator it_Qvector;
for (it_Qvector = qVector.begin(); it_Qvector != qVector.end(); it_Qvector++) {
qDebug() << *it_Qvector;
}
/*
* 3.3 QVector iterator read
*/
qDebug() << "3.3 iterator only read";
QVectorIterator <QString> vector_r(qVector);
while (vector_r.hasNext()) {
qDebug() << vector_r.next();
}
/*
* 3.4 QVector iterator read/write
*/
qDebug() << "3.4 QVector iterator read/write";
qDebug() << "before";
QMutableVectorIterator<QString> vector_rw(qVector);
while(vector_rw.hasNext())
{
qDebug() << vector_rw.next();
}
vector_rw.toFront();
// QVector <QString>::iterator it = qVector.begin();
while(vector_rw.hasNext())
{
vector_rw.setValue("qulu");
vector_rw.next();
}
qDebug() << "after";
vector_rw.toFront();
while(vector_rw.hasNext())
{
qDebug() << vector_rw.next();
}
/*
* 4&5. QMap&QHash
*/
qDebug()<<"=============QMap=============";
QMap <QString, QString> map;
map.insert("beijing", "111");
map.insert("shanghai", "021");
map.insert("nanjing", "025");
/*
* 4.1 QMap Java iterator
*/
qDebug() << "4.1 QMap Java iterator";
QMapIterator<QString, QString> i(map);
for (;i.hasNext();) {
i.next();
qDebug()<<" "<<i.key()<<" "<<i.value();
}
QMutableMapIterator <QString, QString> mi(map);
if(mi.findNext("111"))
{
mi.setValue("010");
}
QMapIterator<QString, QString> modi(map);
qDebug()<<" ";
for (;modi.hasNext();) {
modi.next();
qDebug()<<" "<<modi.key()<<" "<<modi.value();
// qDebug()<<" "<<modi.next().key()<<" "<<modi.next().value();
}
/*
* 4.2 QMap STL iterator
*/
qDebug()<<"4.2 QMap STL iterator";
QMap<QString, QString>::Iterator it_QMap;
for (it_QMap = map.begin(); it_QMap != map.end(); it_QMap++) {
qDebug()<<" "<<it_QMap.key()<<" "<<it_QMap.value();
}
}
输出结果:
=============QList=============
"This is a test string" How are you!
=============QLinkedList=============
2.1 QLinkedList Java iterator
"xll"
"lulu"
"baobao"
2.2 QLinkedList STL iterator
"xll"
"lulu"
"baobao"
=============QVector=============
3.1 QVector Java iterator
""
"lulu"
""
"xll"
"baobao"
3.2 QVector STL iterator
""
"lulu"
""
"xll"
"baobao"
3.3 iterator only read
""
"lulu"
""
"xll"
"baobao"
3.4 QVector iterator read/write
before
""
"lulu"
""
"xll"
"baobao"
after
"qulu"
"qulu"
"qulu"
"qulu"
"baobao"
=============QMap=============
4.1 QMap Java iterator
"beijing" "111"
"nanjing" "025"
"shanghai" "021"
"beijing" "010"
"nanjing" "025"
"shanghai" "021"
4.2 QMap STL iterator
"beijing" "010"
"nanjing" "025"
"shanghai" "021"