2.7map容器类型

1.map容器类型及map类概述

map的本意是映射,就是可以将一个量映射到另一个量。比如将一个字符串映射为一个数值,那这个字符串就是map的键(key),那个值就是map的数据(value)。

map类的所有对象具有3种属性

属性                         说明                                                           默认值

Count        map对象中存储的key/value对的总数                      0

KeyType       字符串,表示map对象中包括的key的类型      char

ValueType     字符串,表示map对象中包括的数据类型        char

2.创建map对象

map是一个map类中的对象,由MATLAB中名为“容器”的一个包来定义,可以通构造函数来创建

       mapObj=containers.Map({key1,key2,...},{val1,val2,....})

当键和值是字符串时,要加上单引号

        mapObj=containers.Map({‘key1’,‘key2’,...},{‘val1’,‘val2’,...})


创建一个名为schedulemap的map对象来存储课程表

周一      周二    周三     周四    周五  

数学    语文    历史      地理    生物


3. 查看/读取map对象

(1)查看map对象

 keys(mapName)

value(mapName)

(2)读取map对象

寻找指定键(keyName)所对应的值(valueName)

valueName=mapName(keyName)

4.编辑map对象

(1)从map对象中删除keys/values对

  remove(‘mapName’,‘keyName’)

(2)添加keys/values对象

mapName(newKeyName)=newvalue

(3)修改values

mspName(keyName)=newValues

### STL 容器概述 C++ 标准模板库 (STL) 提供了一组通用的容器类,这些容器能够存储不同类型对象并提供高效的访问方式[^1]。容器是STL的核心组件之一,它们封装了数据结构,并提供了丰富的接口来操作内部元素。 #### 主要容器类型及其特点 以下是几种常用的STL容器: - **`std::vector`**: 动态数组,支持随机存取,在尾部插入/删除元素非常高效;但是中间位置的操作性能较差。 - **`std::list`**: 双向链表,适合频繁地在列表两端执行插入和移除动作;不支持快速随机访问。 - **`std::map`**: 关联式容器,基于键值对的方式存储数据,默认按键排序;查找、插入和删除的时间复杂度均为O(log n)。 - **`std::set`**: 实现了一个无重复元素集合的数据结构,同样按照一定顺序排列其成员;适用于需要唯一性的场景。 每种容器都有各自的优势以及适用场合,选择合适的容器对于程序设计至关重要[^2]。 #### 基本使用方法 下面给出各个容器的基本创建与简单使用的例子: ```cpp #include <iostream> #include <vector> #include <list> #include <map> #include <set> int main() { // Vector example std::vector<int> vec = {1, 2, 3}; vec.push_back(4); // 添加新元素到末尾 // List example std::list<std::string> lst; lst.push_front("world"); lst.push_back("hello"); // Map example std::map<char,int> mp; mp['a'] = 10; // 插入一对key-value组合 auto it = mp.find('b'); // 查找是否存在指定key对应的记录 // Set example std::set<double> st{1.5, 2.7, 3.9}; bool inserted = st.insert(-8).second; return 0; } ``` 通过上述代码片段可以看到如何初始化不同类型的标准容器,并对其实施基本操作如添加、查询等。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

技术提高效率

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值