map multimapc++_黑马C++视频笔记《STL之map/multimap》

/* map/multimap容器

* map/multimap属于关联式容器,底层结构是用二叉树实现。

* - map中所有元素都是pair;

* - pair中第一个元素为key(键值),起到索引作用,第二个元素为value(实值);

* - 所有元素都会根据元素的键值自动排序;

*

* 优点:可以根据key值(键)快速找到value值.

*

* map和multimap的区别:

* - map不允许容器中有重复key值元素;

* - multimap允许容器中有重复key值元素.

*

* map构造:

* - `map m;`,默认构造函数;

* - `map(const map & m);`,拷贝构造函数;

*

* 赋值:

* - `map& operator=(const map &m);`, 重载等号操作符.

*

* 大小和交换:

* - `size();`,返回容器中元素的数目;

* - `empty();`,判断容器是否为空;

* - `swap(map);`,交换两个map容器中的数据;

*

* 插入和删除:

* - `insert(elem);`,在容器中插入元素,多种插入方式:

* map m;

* (1)`m.insert(pair(1, 10));`;

* (2)`m.insert(make_pair(2, 20));`;

* (3)`m.insert(map::value_type(3,30);`;

* (4)`m[4]=40;`

* 在上面四种插入方法中,虽然第4种最简单,但是第4中容易出错,如`m[5];`看起来像是在取value值,

* 但是这个操作其实创建了一个新的key-value对,只不过value是用默认值来进行填充的.

* - `clear();`,清除所有元素;

* - `erase(pos);`,删除pos迭代器所指的元素,返回下一个元素的迭代器;

* - `erase(beg, end);`,删除区间[beg, end)的所有元素,返回下一个元素的迭代器;

* - `erase(key);`,删除容器中值为key的元素.

*

* 查找和统计:

* - `find(key);`,查找key是否存在,若存在,返回该键的元素的迭代器;若不存在,返回set.end();

* - `count(key);`,统计key的元素的个数.

*

* 排序:与set排序基本相同,我们可以利用仿函数来改变插入数据时候的排序规则.

*/

一个栗子:

//

// Created by shexuan on 2021/1/23.

//

#include

#include

#include

using namespace std;

class myCompare{

public:

// 记住这里加const,不然后报错

bool operator()(int v1, int v2) const {

// 降序

return v1>v2;

}

};

int main(){

map m;

m.insert(pair(1,10));

m.insert(pair(2,20));

m.insert(pair(3,30));

m.insert(pair(4,40));

m.insert(pair(5,50));

for (map::iterator it=m.begin();it!=m.end();it++){

cout << "first: " << it->first << " second: " << it->second << endl;

}

}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/528266.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

mysql generator备注_MyBatis Generator 自定义生成注释

注释生成器为了生成db里面的注释&#xff0c;必须自定义注释生成器EmptyCommentGenerator&#xff1a;import org.mybatis.generator.api.CommentGenerator;import org.mybatis.generator.api.IntrospectedColumn;import org.mybatis.generator.api.IntrospectedTable;import o…

mysql表添加完整性约束_SQL语句——完整性约束

1.MySQL支持的完整性约束a.主键约束特点&#xff1a;唯一且非空主键可以由一个字段组成&#xff0c;也可以由多个字段组成如果主键由一个字段组成&#xff0c;既可以添加到列级&#xff0c;也可以添加到表级。如果主键由多个字段组成&#xff0c;则只能添加到表级。(1)在字段的…

通信线路工程验收规范 gb51171-2016_老杨一建通信学堂通信线路工程施工技术

引言&#xff1a;本章节以通信线路工程施工建设为主题&#xff0c;涵盖通信光(电)缆施工通用技术、架空、直埋、管道还有综合布线工程施工技术&#xff0c;深入浅出介绍通信线路工程建设中各环节的工作内容和涉及的相关规范。知识归纳卡名 称&#xff1a;1L412050 章 节…

python制作测试报告_使用 python 生成 extent report 测试报告

背景一直使用 HTMLTestRunner 生成 app 自动化的测试报告内容&#xff0c;虽然加了截图的展示&#xff0c;还是感觉报告不够好看。allure 报告内容可以&#xff0c;但是要以 pytest 管理测试 case&#xff0c;且 pytest 会执行所有以 test_命名的 case&#xff0c;测试结果只有…

r语言electricity数据集_R语言实战学习

《R语言实战》中文电子版提取码&#xff1a;lx35已经学习打卡R语言22天了&#xff0c;可以说是初窥真容——基本了解R的数据和函数&#xff1b;作为程序语言&#xff0c;就是要多练习&#xff0c;多领悟&#xff0c;在实战中发现问题并解决问题。所以&#xff0c;就以《R语言实…

mysql查看系统可用字符集_MySQL查看所有可用的字符集

MySQL查看所有可用的字符集Enter password:Welcome to the MySQL monitor. Commands end with ; or \g.Your MySQL connection id is 6190Server version: 5.6.24-log MySQL Community Server (GPL)Copyright (c) 2000, 2015, Oracle and/or its affiliates. All rights reserv…

mysql环形复制的弊端_Docker+阿里云centos7+MySQL主从环形复制踩坑记

老规矩&#xff0c;先列坑slave链接master的时候&#xff0c;一直提示2003错误修改了iptables后&#xff0c;docker 下的容器无法正常使用配置正确后&#xff0c;创建新的db部分机器没有同步Got fatal error 1236 from master when reading data from binary log: unknown erro…

mysql general clomun_关于MySQL索引index杂谈

MySQL建索引命令create index index_name on tablename(clomun_name.....);比如建了CREATE INDEX O_N_P_D ON t_db_netspeed(o,n,p,d)建好索引之后&#xff0c;使用SELECT 命令进行查询SELECT COUNT(*) FROM t_db_netspeed WHERE O1这句话也会用到前面建立的索引 O_N_P_D&…

pythoncount函数怎么用_python中count函数简单的实例讲解

python中count函数的用法count()函数描述&#xff1a;统计字符串里某个字符出现的次数&#xff0c;可以选择字符串索引的起始位置和结束位置。语法&#xff1a;str.count("char", start,end) 或 str.count("char")返回值&#xff1a;整型参数说明&#xff…

twisted mysql_在Twisted下用MySQLadbapi获取自增id

D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据库后&#xff0c;会将创建的D jango的ORM有一个很便捷的功能&#xff0c;其实也应该说是一个很基本的功能吧。就是在对一个model调用 save() 插入到数据…

java客户端_Java常用的Http client客户端

Http Client应用场景&#xff1a;Http协议是最重要的网络协议之一&#xff0c;目前移动端的开发、javaweb前后端分离架构&#xff0c;使越来越多的java应用使用http协议访问资源。Http client 大多数场景使用在多个服务之间相互调用rest api&#xff0c;特别是现在微服务架构的…

java 新浪邮箱_使用javamail发送邮件,sina的邮箱作为发信人不行

我参照网上&#xff0c;写了一个简单的使用javamail发送邮件的程序&#xff0c;使用一般的邮件服务器作为发件人&#xff0c;程序都很正常&#xff1b;但使用smtp.sina.com.cn作为邮件服务器地址的发件人时&#xff0c;程序却验证失败&#xff01;这是什么原因&#xff1f;程序…

java des3加密_JAVA加密算法(3)- 对称加密算法(DES、3DES、AES)

对称加密算法概念加密密钥和解密密钥相同&#xff0c;大部分算法加密揭秘过程互逆。特点&#xff1a;算法公开、(相比非对称加密)计算量小、加密速度快、效率高。弱点&#xff1a;双方都使用同样的密钥&#xff0c;安全性得不到保证。常用对称加密算法DES(Data Encryption Stan…

android jni 调用java对象_Android NDK开发之Jni调用Java对象

本地代码中使用Java对象通过使用合适的JNI函数&#xff0c;你可以创建Java对象&#xff0c;get、set 静态(static)和 实例(instance)的域&#xff0c;调用静态(static)和实例(instance)函数。JNI通过ID识别域和方法&#xff0c;一个域或方法的ID是任何处理域和方法的函数的必须…

docker 容器端口访问不到_docker容器无法访问宿主机端口的解决

最近在工作时遇到一个问题,docker容器无法访问宿主机的redis,telent6379端口不通。 经排查发现,该服务器启用了防火墙,防火墙把6379的端口的访问授权给docker0网卡访问即可。 操作如下: firewall-cmd --permanent --zone=trusted --change-interface=docker0 firewall-cmd…

java public权限_Java public 访问权限

Java public 访问权限接下来&#xff0c;我们准备为大家介绍“public 访问权限”。在前面的学习中&#xff0c;我们已经接触过public这个关键字&#xff0c;就是在入口方法 main的前面&#xff0c;现在我们可以来回顾一下对应的代码&#xff1a;public class MyTest{publicstat…

java timer线程结束_Java线程Timer定时器用法详细总结

定时/计划功能主要使用的就是Timer对象&#xff0c;它在内部还是使用多线程的方式进行处理&#xff0c;所以它和线程技术还是有非常大的关联。Timer类主要作用就是设置计划任务&#xff0c;但封装任务的类却是TimerTask类。TimerTask类是一个抽象类。执行任务的时间晚于当前时间…

java在创建对象时必须_Java中5种创建对象的方式

以下是一些在Java中创建对象的方法&#xff1a;1、 使用new关键字使用new关键字是创建对象的最基本方法。这是在java中创建对象的最常见方法。几乎99%的对象都是这样创建的。通过使用这个方法&#xff0c;我们可以调用我们想要调用的任何构造函数(无参数或参数化构造函数)。//J…

java类的定义的实例_Java中类的定义和初始化示例详解

类的定义类的定义格式//创建类class classname{field &#xff1b;//成员属性/字段method&#xff1b;//方法}class为定义类的关键字&#xff0c;classname为类的名字&#xff0c;{ }为类的主体&#xff1b;例如&#xff1a;class person{public string name ; //成员属性publi…

java 多线程池_Java ThreadPoolExecutor线程池 同时执行50个线程

最近项目上有个需求&#xff0c;需要从FTP服务器中下载大批量的数据文件&#xff0c;然后解析该数据文件进行入库&#xff0c;数据库为oracle&#xff0c;最后在通过web工程&#xff0c;以报表和图表的形式进行展现。这些批量的数据文件为纯文本文件&#xff0c;每天产生数据文…