之前的文章介绍了顺序容器的一些用法:
c++顺序容器用法
这里主要记录下两个关联容器map和set的用法,同样会多引用C++ Primer中的原文
简介:这里只介绍前两个(map,set)的一些基础用法,后面几个可以根据业务情况自己学习用法。
特点:map是键值对,set只有键
关键词唯一
关键词有序或者不保证有序
Map: 声明-定义-初始化:map插入/修改:;//空 map map_example={{1,"asd"},{0,"ddd"}};//列表初始化
QMap查询map = { {1, "232"}, {0, "aaa"}, {2, "aa1a"} }; //会找到有没有存在的key数值,存在就修改,不存在插入新的 map[3]="2233"; map.insert(3, "2233");
for (auto iter = map.begin(); iter != map.end(); iter++) {
qDebug() << iter.key() << iter.value();
}
删除
QMapSet 声明-定义-初始化:map = { {1, "232"}, {0, "aaa"}, {2, "aa1a"} }; 删除键值为2的数值 for (auto iter = map.begin(); iter != map.end();) { if (iter.key() == 2) { iter = map.erase(iter); } else { iter++; } }
QSet插入:test_set = { "ad", "123", "sdsads" };
//插入
test_set.insert("ad");
test_set.insert("aaa");
查询:
for (auto iter = test_set.begin(); iter != test_set.end(); iter++) {
qDebug() << *iter;
}
删除:
for (auto iter = test_set.begin(); iter != test_set.end();) {
if (*iter == "aaa") {
iter = test_set.erase(iter);
} else {
iter++;
}
}



