合肥网站优化推广方案,网页制作与网页设计简历,app开发小程序,优购商城网站建设这里写目录标题 map【有序哈希表】使用方法1.头文件:2.创建map:3.添加键值对:4.查找键值对#xff1a;5.遍历键-值对#xff1a;5.综合示例#xff1a;班级学生 map【有序哈希表】使用方法
话不多说#xff0c;接着讲map用法#xff1a;
map#xff1a;映射#xff0c… 这里写目录标题 map【有序哈希表】使用方法1.头文件:2.创建map:3.添加键值对:4.查找键值对5.遍历键-值对5.综合示例班级学生 map【有序哈希表】使用方法
话不多说接着讲map用法
map映射存储键-值对并按键升序排序。
1.头文件:
#include iostream
#include map2.创建map:
mapstring, int myMap; // 创建一个从字符串到整数的映射3.添加键值对:
insert(pairKey, Value(key, value))向映射中插入键-值对 //使用make_pair将参数变成键值对类型myMap.insert(make_pair(c1,v1) );myMap.insert(make_pair(c2, v2));myMap.insert(make_pair(c3, v3));//或者直接使用花括号myMap.insert({c4,v4});4.查找键值对
find(key)查找映射中是否存在特定键返回迭代器。count(key)统计特定键在映射中的出现次数对于 std::map要么是0要么是1。 // 5.查找键值对int times myMap.count(c2);if (times 1) {cout 存在班级c2 endl;} else {cout 不存在班级c2 endl;}//找出班级c3的所有学生mapstring, vectorstring::iterator it;it myMap.find(c3);if(it ! myMap.end()) {cout 班级c2的学生 ;for (string stu : it-second) {cout stu ;}}5.遍历键-值对
使用迭代器可以遍历整个映射
void printMap1(mapstring, vectorstring myMap) {mapstring, vectorstring::iterator it;for (it myMap.begin(); it ! myMap.end();it) {cout 班级: it-first 学生;for (const string stuName : it-second){cout stuName , ;}cout endl;}
}5.综合示例班级学生
#include iostream
#include set
#include string
#include map
#include vector
using namespace std;//输出每个班级的人
void printMap(mapstring, vectorstring myMap) {for (const auto pair : myMap) {cout 班级: pair.first 学生;for (const auto stuName : pair.second){cout stuName , ;}cout endl;}}void printMap1(mapstring, vectorstring myMap) {mapstring, vectorstring::iterator it;for (it myMap.begin(); it ! myMap.end();it) {cout 班级: it-first 学生;for (const string stuName : it-second){cout stuName , ;}cout endl;}}int main() {// 使用map存储班级-学生信息班级是key,学生信息是value,一个字符串数组// 1.创建mapmapstring, vectorstring myMap;// 2.准备数据vectorstring v1 {张三,李四,王五};vectorstring v2 {李寻欢,二郎神,游所为};vectorstring v3 {郭靖,杨过,黄蓉};vectorstring v4 {jack,Tom,Lina};// 3.给map添加元素的两种办法 //在 map 中键值对的插入语法应该使用 make_pair 或者花括号 {}myMap.insert(make_pair(c1,v1) );myMap.insert(make_pair(c2, v2));myMap.insert(make_pair(c3, v3));myMap.insert({c4,v4});//输出每个班级的人printMap(myMap);// 4.删除指定键值对myMap.erase(c4);printMap1(myMap);// 5.查找键值对int times myMap.count(c2);if (times 1) {cout 存在班级c2 endl;} else {cout 不存在班级c2 endl;}//找出班级c3的所有学生mapstring, vectorstring::iterator it;it myMap.find(c3);if(it ! myMap.end()) {cout 班级c2的学生 ;for (string stu : it-second) {cout stu ;}}return 0;
}综合示例2统计单词频率
#include iostream
#include map
#include string
#include sstream
using namespace std;/*
description: 本文件介绍有序map容器用法02
author zhengshihong
*/int main() {string text this is a simple example of using std map this is example;mapstring, int wordFrequency;// 将文本拆分为单词并统计频率// istringstream 是 C 中的输入流它可以从字符串中读取数据就像 cin 从标准输入中读取数据一样。istringstream iss(text);//创建了一个 istringstream 对象 iss,并用给定的文本 text 来初始化它string word;//定义了一个字符串变量 word用于存储从 iss 读取的每个单词。//它不断从 iss 中读取单词并将每个单词存储在 word 变量中while (iss word) {// 将单词插入映射如果已存在则增加频率wordFrequency[word];//使用 word 作为键将单词插入到名为 wordFrequency 的映射map 或 unordered_map中。//如果已存在key等于单词则频率加1不存在则增加等于单词的key,并初始化频率为1}// 输出每个单词的频率for (const auto pair : wordFrequency) {cout pair.first : pair.second endl;}return 0;
}那么map的用法就讲到这里下一章看vector的用法。