IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> C++知识库 -> C++中map和set系列元素操作 -> 正文阅读

[C++知识库]C++中map和set系列元素操作

参考书籍
《C++Primer》
1.添加元素
添加元素是指添加一个元素或者一个元素范围;
返回值:
对于map、set插入后会返回一个是否插入成功的bool值,若插入成功则会返回一个指向指定元素的迭代器。
对于multi_**总是会插入,所以无需返回bool值;
(1)set
set的插入操作和之前熟悉的vector类似。

    set<int> set1;
    //插入具体的数值
    set1.insert(1);
    //插入一个范围
    set1.insert(v1.begin(),v1.end());

(2)map
map中进行插入操作时,需要知道元素类型是pair;
需要插入数据时可以显示调用pair对象,可以在insert参数中创建pair对象;

    map<string,int> map1;
    //显示的构造pair对
    map1.insert({"word",1});
    map1.insert(make_pair("word",1));
    map1.insert(pair<string,int>("word",1));

(3)关联容器的插入操作汇总

//插入指定容器的某个范围,be为指向起始位置的迭代器
c.insert(b,e);
//在指定位置插入元素,p指postion位置
c.insert(p,v);

2.删除元素
可以删除指定位置的元素,也可以删除具体的元素值;
返回值:
对于map、set返回0或1,返回0是指待删除元素不在容器中;
对于muliti_**删除的数量可能大于1;
(1)操作汇总

//从关联容器中删除关键字k,返回值为删除元素的数量
c.erase(k);
//从关联容器中删除迭代器p指向的元素,并返回p之后元素的迭代器,若p在最后,则返回c.end()
c.erase(p);
//删除迭代器b和e范围中的元素,返回e。因为这样的区间一般都是左闭右开的
c.erase(b,e);

3.下标操作
set没有下标操作,元素本身就是关键字,获取“关键字相关联的值就没有意义”
(1)map
map的下标操作是接受一个索引;
如果元素在map中则返回对应的值,不在map中则会对其进行初始化,加入新的元素。
所以只想执行查询操作是,不能使用下标运算符。

4.访问元素
lower_bound和upper_bound不适用与无序容器

//返回一个迭代器,直线第一个关键字为k的元素,若k不在容器中返回尾迭代器
c.find(k);
//返回关键字为k的元素的数量,对不允许重复关键字的容器来说,返回值是0或1
c.count(k);
//返回一个迭代器,指向第一个关键字不为小于k的迭代器
c.lower_bound(k);
//返回一个迭代器,指向第一个关键字不为大于k的迭代器
c.upper_bound(k);
//返回一个迭代器pair,指向第一个关键字等于k的迭代器对应元素范围(因为关键字是按顺序存储的)
c.equal_range(k);
  C++知识库 最新文章
【C++】友元、嵌套类、异常、RTTI、类型转换
通讯录的思路与实现(C语言)
C++PrimerPlus 第七章 函数-C++的编程模块(
Problem C: 算法9-9~9-12:平衡二叉树的基本
MSVC C++ UTF-8编程
C++进阶 多态原理
简单string类c++实现
我的年度总结
【C语言】以深厚地基筑伟岸高楼-基础篇(六
c语言常见错误合集
上一篇文章      下一篇文章      查看所有文章
加:2022-04-06 15:59:31  更:2022-04-06 16:00:18 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/24 0:13:08-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码