java与c++的map使用比较

5 篇文章 0 订阅

java和c++都有map,java的Map是接口,M大写;c++的map是实现好的类,m小写。

所以java一般需要使用HashMap,c++使用map。

 

c++的定义与设值:

#include <map>

map<string, int> inMap;

inMap.clear();

inMap.insert(make_pair("chargeId", 1));

 

java的定义与设值:

import java.util.HashMap;

import java.util.Map;

Map map = new HashMap();//jdk1.4或以前

Map<String,Integer> map = new HashMap<String,Integer>();//jdk1.5或以后

map.put("chargeId", 1);

 

map是STL里,需要include<map>。java在new的时候已经清空的内存,所以不需要c++这么麻烦的clear。

c++的insert和java的put差不多,但是c++需要麻烦的调用make_pair把键值对转化为一个结构体。

c++的map支持基本类型,但是java的是不支持的,只能用Integer,不能用int,put的时候只是自动装箱转化为Integer而已。

 

c++的取值:

map<string, int>::iterator it = inMap.find("chargeId");

int mapValue = 0;

if (it != inMap.end())

{

mapValue = it->second;

}

 

java的取值:

Integer i = map.get("chargeId") == null ? 0 : map.get("chargeId");//jdk1.5或以后

 

c++的取值真心麻烦啊,写这么多行代码。java的优雅就是这么来的。

c++的find相当于java的get,但是c++必须返回一个迭代器,你需要通过迭代器来判断获取。

结构体里也定义好了first和second,你想获取哪个就哪个。

而java把全部的获取都做好了,你只需要get一下。如果没有,则返回null。java的基本类型不能为null,所以不支持基本类型。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
C++中的map是一个关联容器,它存储键值对,其中每个键都是唯一的。在C++中,可以使用map类来使用C++mapC++ map中提供了许多方法来操作和访问元素。这些方法包括:begin(),end(),size(),empty(),insert(),erase(),find()等。使用begin()方法可以返回指向map开头的迭代器,而end()方法返回指向map末尾的迭代器。size()方法返回map中元素的数量,empty()方法用于检查map是否为空。insert()方法用于插入键值对,erase()方法用于删除元素,find()方法用于查找元素。另外,还有lower_bound()和upper_bound()方法用于返回给定元素的位置。 另外,根据引用,C++中还有hash_map和unordered_map这两个类,它们是哈希表的实现方式。unordered_map在大数据量时具有较高的查找效率,但在小数据量时会占用较多的内存。在使用unordered_map时,需要注意先判断键是否存在,避免不必要的插入和默认值返回。count()方法可以用来判断键的数量,而find()方法可以查找键是否存在。 因此,C++中有多种map类型可供使用,具体使用哪一种取决于实际需求和性能要求。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [超详细Java入门到精通自学视频课程-08、继承:概述、案例.rar](https://download.csdn.net/download/weixin_54787054/88280693)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [C++map使用](https://blog.csdn.net/qican_7/article/details/98342271)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值