C++ 学习小程序之 map 的用法

简介: 1. map::at 1 #include 2 #include 3 #include 4 using namespace std; 5 6 int main(){ 7 map mymap = { 8 {"alpha", 0}, ...

1. map::at

 1 #include <iostream>
 2 #include <string>
 3 #include <map>
 4 using namespace std;
 5 
 6 int main(){
 7     map<string, int> mymap = {
 8         {"alpha", 0},
 9         {"beta", 0},
10         {"gamma", 0}};
11 
12     mymap.at("alpha") = 10;
13     mymap.at("beta") = 20;
14     mymap.at("gamma") = 30;
15 
16     for (auto& x:mymap){
17         cout<<x.first<<": "<<x.second<<'\n';
18     }
19 
20     return 0;
21 }

 

2. make_pair example

 1 // make_pair example
 2 #include <utility>      // std::pair
 3 #include <iostream>     // std::cout
 4 
 5 int main () {
 6   std::pair <int,int> foo;
 7   std::pair <int,int> bar;
 8 
 9   foo = std::make_pair (10,20);
10   bar = std::make_pair (10.5,'A'); // ok: implicit conversion from pair<double,char>
11 
12   std::cout << "foo: " << foo.first << ", " << foo.second << '\n';
13   std::cout << "bar: " << bar.first << ", " << bar.second << '\n';
14 
15   return 0;
16 }

 

3. map::begin/end

 1 // map::begin/end
 2 #include <iostream>
 3 #include <map>
 4 
 5 int main ()
 6 {
 7   std::map<char,int> mymap;
 8 
 9   mymap['b'] = 100;
10   mymap['a'] = 200;
11   mymap['c'] = 300;
12 
13   // show content:
14   for (std::map<char,int>::iterator it=mymap.begin(); it!=mymap.end(); ++it)
15     std::cout << it->first << " => " << it->second << '\n';
16 
17   return 0;
18 }

4.   map::insert(C++98)

 1 // map::insert(C++98)
 2 #include <iostream>
 3 #include <map>
 4 using namespace std;
 5 int main ()
 6 {
 7     map<char,int> mymap;
 8 
 9     // first insert function version (single parameter):
10     mymap.insert ( pair<char,int>('a', 100) );
11     mymap.insert ( pair<char,int>('z', 200) );
12 
13     pair<map<char, int>::iterator, bool> ret;
14     ret = mymap.insert (pair<char,int>('z',500));
15     if (ret.second == false){
16         cout<<"element 'z' already existed";
17         cout<<"with a value of " << ret.first->second << '\n';
18     }
19 
20     //second insert function version (with hint position):
21     map<char, int>::iterator it = mymap.begin();
22     mymap.insert (it, pair<char, int>('b',300)); // max efficiency inserting
23     mymap.insert (it, pair<char, int>('c',400)); // no max efficiency inserting
24 
25     //third insert function version (range insertion):
26     map<char,int> anothermap;
27     anothermap.insert(mymap.begin(),mymap.find('c'));
28 
29     // showing contents:
30     cout<<"mymap contains: \n";
31     for (it = mymap.begin(); it!= mymap.end(); ++it)
32         cout<<it->first<<"=>"<<it->second<<'\n';
33 
34     cout<<"anothermap contains: \n";
35     for(it=anothermap.begin(); it!=anothermap.end();++it)
36         cout<<it->first<<"=>"<<it->second<<'\n';
37 
38     return 0;
39 }

 

相关文章
|
3月前
|
存储 C++ 容器
【C++】map、set基本用法
本文介绍了C++ STL中的`map`和`set`两种关联容器。`map`用于存储键值对,每个键唯一;而`set`存储唯一元素,不包含值。两者均基于红黑树实现,支持高效的查找、插入和删除操作。文中详细列举了它们的构造方法、迭代器、容量检查、元素修改等常用接口,并简要对比了`map`与`set`的主要差异。此外,还介绍了允许重复元素的`multiset`和`multimap`。
59 3
【C++】map、set基本用法
|
3月前
|
存储 算法 C++
【C++】unordered_map(set)
C++中的`unordered`容器(如`std::unordered_set`、`std::unordered_map`)基于哈希表实现,提供高效的查找、插入和删除操作。哈希表通过哈希函数将元素映射到特定的“桶”中,每个桶可存储一个或多个元素,以处理哈希冲突。主要组成部分包括哈希表、哈希函数、冲突处理机制、负载因子和再散列,以及迭代器。哈希函数用于计算元素的哈希值,冲突通过开链法解决,负载因子控制哈希表的扩展。迭代器支持遍历容器中的元素。`unordered_map`和`unordered_set`的插入、查找和删除操作在理想情况下时间复杂度为O(1),但在冲突较多时可能退化为O(n)。
37 5
|
3月前
|
存储 C++ 容器
【C++】map的模拟实现
C++中的`map`是STL中的一种关联容器,存储键值对且键唯一。`map`基于红黑树实现,自动按键排序,支持动态调整、复杂数据类型、丰富的成员函数及双向迭代器。插入、查找等操作保证了对数时间复杂度,适用于需要快速查找和有序存储的场景。
30 3
|
4月前
|
存储 缓存 Java
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
【用Java学习数据结构系列】HashMap与TreeMap的区别,以及Map与Set的关系
57 1
|
6月前
|
小程序 前端开发 Java
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
JavaDog Chat v1.0.0 是一款基于 SpringBoot、MybatisPlus 和 uniapp 的简易聊天软件,兼容 H5、小程序和 APP,提供丰富的注释和简洁代码,适合初学者。主要功能包括登录注册、消息发送、好友管理及群组交流。
155 0
SpringBoot+uniapp+uview打造H5+小程序+APP入门学习的聊天小项目
|
5月前
|
小程序 JavaScript API
微信小程序开发学习之页面导航(声明式导航和编程式导航)
这篇文章介绍了微信小程序中页面导航的两种方式:声明式导航和编程式导航,包括如何导航到tabBar页面、非tabBar页面、后退导航,以及如何在导航过程中传递参数和获取传递的参数。
微信小程序开发学习之页面导航(声明式导航和编程式导航)
|
5月前
|
小程序 JavaScript
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
本文介绍了微信小程序中的数据绑定、事件绑定、事件传参与数据同步的基本概念和使用方法,包括如何在data对象中定义数据、使用mustache语法在wxml中渲染数据、绑定和处理事件、事件对象属性、事件传参以及实现输入框与data数据的同步。
微信小程序学习之数据绑定,事件绑定,事件传参与数据同步的学习记录
|
6月前
|
小程序
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
这篇文章是作者关于学习微信小程序开发并在一周内成功开发出一个商城项目系统的心得体会,分享了学习基础知识、实战项目开发的过程,以及小程序开发的易上手性和开发周期的简短。
关于我花了一个星期学习微信小程序开发、并且成功开发出一个商城项目系统的心得体会
|
25天前
|
小程序 前端开发 关系型数据库
基于Uniapp+php校园小程序,校园圈子论坛系统功能,校园跑腿二手交流功能设计
校园圈子论坛及综合服务平台集成了校园跑腿、兼职信息、外卖团购、闲置交换、租赁服务、表白墙等多功能模块,提供一站式校园生活解决方案。系统采用uniapp前端和PHP后端开发,支持多城市、多学校切换,配备分站式后台管理,确保稳定性和安全性。通过融云IM SDK实现即时通讯功能,增强用户互动与粘性。适用于大学校园、城市及社区圈子,满足多样化需求,提升便捷体验。
|
1月前
|
移动开发 小程序 前端开发
超详细攻略!uniapp陪玩系统,打包陪玩小程序、H5需要注意什么?
陪玩系统的打包过程涵盖APP、小程序和H5平台。APP打包需使用uni-app开发工具,配置项目信息并选择云打包;小程序打包需在微信公众平台注册账号并提交审核;H5打包则直接通过uni-app生成文件并上传至服务器。各平台需注意权限配置、代码规范及充分测试,确保应用稳定性和兼容性。

热门文章

最新文章