首先我们还是建立一个Gui的应用程序,名称为ContainterDemo,下面是对应的源程序代码:
mainwindow.h
#ifndef MAINWINDOW_H#define MAINWINDOW_H#include#include namespace Ui {class MainWindow;}class MainWindow : public QMainWindow{ Q_OBJECT public: explicit MainWindow(QWidget *parent = 0); ~MainWindow(); private: Ui::MainWindow *ui; QTextEdit *TextEdit;};#endif // MAINWINDOW_H
mainwindow.cpp
#include "mainwindow.h"#include "ui_mainwindow.h"#includeMainWindow::MainWindow(QWidget *parent) : QMainWindow(parent), ui(new Ui::MainWindow){ ui->setupUi(this); TextEdit = new QTextEdit(this); QVBoxLayout *Layout = new QVBoxLayout(this); Layout->addWidget(TextEdit); ui->centralWidget->setLayout(Layout); //QList使用方法 QList List; List<<"zhangsan"<<"lisi"<<"wangwu"; List.append("xiaoming"); //默认是插在首个元素的位置 foreach (QString var, List) { TextEdit->append(var); } TextEdit->append(QString::number(List.size())); TextEdit->append(List.at(2)); QListIterator i(List); //创建列表中的只读迭代器,正序遍历 while (i.hasNext()) { TextEdit->append(i.next()); } TextEdit->append("\n"); //QMap使用方法 QMap Map; Map["One"] = 1; Map["Two"] = 2; Map["Three"] = 3; Map.insert("Four",4); foreach (QString var, Map.keys()) { TextEdit->append(var); } TextEdit->append(QString::number(Map.size())); TextEdit->append(QString::number(Map["Two"])); TextEdit->append(QString::number(Map.value("Two"))); //使用QMap中的一键多值 QMultiMap map1,map2,map3; map1.insert("values1",1); map1.insert("values2",2); map2.insert("values3",3); map3 = map1+ map2; foreach (QString var, map3.keys()) { TextEdit->append(var); } TextEdit->append("\n"); //通用算法举例 QList List1; List1<<1<<3<<2<<4<<5<<6; QList ::iterator j =qLowerBound(List1.begin(),List1.end(),5); List1.insert(j,5); foreach (int var, List1) { TextEdit->append(QString::number(var)); } TextEdit->append("\n"); qSort(List1.begin(),List1.end()); foreach (int var, List1) { TextEdit->append(QString::number(var)); } TextEdit->append("\n");}MainWindow::~MainWindow(){ delete ui;}
main.cpp
#include "mainwindow.h"#includeint main(int argc, char *argv[]){ QApplication a(argc, argv); MainWindow w; w.show(); return a.exec();}
以下是程序运行的效果,在这里笔者只是演示了部分容器的部分功能,所以你不要认为它的功能一般,如果你要是能熟练使用这些容器类,在后期的绘图方面,你会发现它的强大功能!