用的语言多了,JAVA、 C++、 python、 JS ,数据类型的用法大致相同但细节处又不一样。今天MARK一下QT 底下的QList、 QMap、 QListIterator、 QMutableListIterator。一般常用的也就是变量的增删改查。
1.QList
2.QMap
3.容器 大体分两种JAVA风格和STL
4..QListIterator
5.QMutableListIterator
1.QList
QList<QString> m_list;//赋值比较容易 查找速度不快
1.1 赋值 insert() 插入 前后 中间
m_list[i]="";
m_list.append("end"); // 在列表尾部添加
m_list.prepend("start"); //列表头部
m_list.insert(m_index,"m_content");//m_index位置插入m_content
1.2 查询 数组个数,是否包含,索引,内容
m_list.contains("mm");//是否包含
m_list.count("mm");//包含的个数
m_list.size();//大小
int m_index=list.indexOf("mm")//序号、匹配的位置
int m_data=list.at(m_index)//查找位置上的数据
1.3删除 最前 最后 特定位置
replace()
removeAt()
removeFirst()
removeLast()
1.4 换位
m_list.swap(1,3);
2.QMap
2.1 赋值insert() 插入 前后 中间
map["one"] = 1; // 向map中插入("one",1)//key m_value
map["three"] = 3;
map.insert("seven", 7); // 使用insert()函数进行插入
2.2 查询 数组个数,是否包含,索引,内容
int value1 = map["six"];//如果没有自动插入
int value2 = map.value("five");//如果没有不会自动插入
int value3 = map.value("nine", 9);//默认返回0
map.insert("ten", 10);
map.insertMulti("two", 2);//一键多值
map.insertMulti("two", 4);
3.容器 大体分两种JAVA风格和STL
STL
4..QListIterator
QListIterator<QString> QListIterator<QString> i_iterator(list);
QList<QString> list;
list << "A" << "B" << "C" << "D";
4.1 赋值
4.2 遍历列表 正向、反向
while (i_iterator.hasNext()) // 正向遍历列表,结果为A,B,C,D
qDebug() << i_iterator.next();
while (i_iterator.hasPrevious()) // 反向遍历列表,结果为D,C,B,A
qDebug() << i_iterator.previous();
5.QMutableListIterator
QMutableListIterator<QString> j_iterator(list);
先返回尾部,再判断是否有前一个值。
5.1 返回头部 尾部
j_iterator.toBack();
j_iterator.toFront();
5.2 删除 先回尾部再判断
j_iterator.toBack(); // 返回列表尾部
while (j_iterator.hasPrevious()) {
QString str = j_iterator.previous();
if(str == "B") j_iterator.remove();
}
5.3 查找
5.4 赋值
j_iterator.toBack();
if(j_iterator.hasPrevious()) j_iterator.previous() = "N"; // 直接赋值
j_iterator.setValue("M"); // 使用setValue()进行赋值