美文网首页
c++中map的操作

c++中map的操作

作者: 晓函 | 来源:发表于2017-12-14 09:45 被阅读49次

之前用python,写着很方便,特别是里面有一种数据类型,字典。
比如 student_scores = {}
student_scores ["xiaoming"] = 80;
student_scores ["lucy"] = 90;

可以很方便的直接使用字符串作为key,来获取其中的value,可以既方便的和JSON数据配合使用 或者 很多场景减少大量重复代码。

那么c++里面有没有类似的呢。也是有的,那就是std::map

关于map的定义:

map<key,value> student_scores;

第一个是key的类型,第二个是value 的类型。key可以是字符串,value可以是任何类型,包括class,struct,vector,wstring,int,char等任意数据类型。

我们用C来实现上面学生的定义

#include <string>
#include <map>
using namespace std;

void main(){
map<wstring,int> student_scores;
//添加
student_scores [L"小明"] = 80;
student_scores [L"lucy"] = 90;

//遍历:
//it.first就是key,it.second就是value
for(auto&it:student_scores){
    printf("名字:%s, 分数:%d\n",WstringToString(it.first).c_str(),it.second);
}

//判断是否存在
if (student_scores .find(L"小明") == student_scores .end())
    printf("不存在小明的分数");
else
    printf("找到小明的分数");

//添加和修改 都是一样的
student_scores[L"小明"] = 90;

//读取
printf("lucy的分数:%d\n",student_scores[L"lucy"]);

//删除
student_scores.erase(L"小明");

}


删除操作:

1 map.erase(k):删除map中键为k的元素。返回size_type类型的值,表示删除的元素个数;

2 map.erase(p):从map中删除迭代器p所指向的元素。p必须指向map中确实存在的元素,而且不能等于map.end(),返回 void类型;

3 map.erase(b,e):从map中删除一段范围内的元素,该范围由迭代器对b和e标记。b和e必须标记map中的一段有效范围:即b和e都必须指向map中的元素或最后一个元素的下一个位置。而且,b和e要么相等(此时删除的范围为空),要么b所指向的元素必须出现在e所指向的元素之前,返回void类型

相关文章

  • c++中map的操作

    之前用python,写着很方便,特别是里面有一种数据类型,字典。比如 student_scores = {}stu...

  • C++ std::map的插入操作

    std::map的插入操作 map是C++中的映射容器类, 支持key-value的存储方式, 那么在插入时是进行...

  • go语言学习总结

    1、go语言的map和c++中的map有什么区别? go语言中的map是hash_table,和c++中uno...

  • map

    在其他语言诸如C++/Java中, map一般都以库的方式提供 如C++中的 std::map<> ,Java中的...

  • C++ unordered_map

    hash_map ≈ unordered_map 最初的 C++ 标准库中没有类似 hash_map 的实现,但不...

  • Scala学习第十节:Map 以及常规用法

    创建map 创建可变map 获取map中的值 更新map 其他操作

  • 实现特定场景下高性能的HashMap

    C++标准库的某些场景下的效率问题 在下面的场景中,C++标准库的unordered_map、map、multis...

  • map hash_map(挖坑)

    学习内容来自C++ STL中哈希表 hash_map 未学C++之哈希表的使用 map 使用count,返回的是被...

  • C++ STL:unordered_map

    背景: hash_map 不是C++ 11 的标准 在vc中编译时: #includeusin...

  • swift中的map和flatMap

    map .map操作,对数组中的元素添加相同类型值,返回相同类型 .map操作,对数组中的元素添加不同类型值,返回...

网友评论

      本文标题:c++中map的操作

      本文链接:https://www.haomeiwen.com/subject/nfuhwxtx.html