zoukankan      html  css  js  c++  java
  • [C++]-map 映射

    map用来存储排序后的由键和值组成的项的集合。键必须唯一,不同的键可以对应同一个值,在map中键保持逻辑排序后的顺序(以键为标准)。

    代码

    #include<iostream>
    #include<map>
    #include<string>
    using namespace std;
    
    inline void print_map(map<string, double> m)
    {
    	for(map<string, double>::iterator it = m.begin(); it != m.end(); ++it) // it指向一个二元组 
    		cout << it->first << ": " << it->second << endl; cout << endl;
    	/**
    	for(auto x : m)
    		cout << x.first << ": " << x.second << endl; cout << endl;
    	*/
    }
    
    int main()
    {
    	map<string, double> mymap; // 默认是小于比较器less<string> 
    	
    	cout << "-----插入------" << endl;
    	mymap.insert(pair<string, double>("xxm", 1.1));
    	mymap.insert(make_pair("mqg", 2.2));
    	mymap.insert(map<string, double>::value_type("lpp", 3.3)); 
    	mymap["zhx"] = 4.4;
    	print_map(mymap); 
    	
    	cout << "-----通过键获取元素值------" << endl;
    	// 直接索引
    	// 通过索引直接获取对应的值,不存在键sjx,则返回double无参构造函数赋值为0 
    	cout << mymap["xxm"] << " " << mymap["sjx"] << endl; 
    	// 由于刚才 mymap["sjx"]语句,现在mymap中多了一个键值对mymap["sjx"]=0 
    	// for循环遍历 
    	print_map(mymap);
    		
    	cout << "----- 判断是否存在某个键------" << endl;
    	map<string, double>::iterator it1 = mymap.find("xxm"); // 存在,返回对应的迭代器 
    	if(it1 == mymap.end())
    		cout << "不存在该键" << endl;
    	else
    		cout << it1->second << endl; 
    	map<string, double>::iterator it2 = mymap.find("xxxxm"); // 不存在,返回mymap.end() 
    	if(it2 == mymap.end())
    		cout << "不存在该键" << endl;
    	else
    		cout << it2->second << endl; 
    	cout << endl; 
    	
    	cout << "-----删除------" << endl;
    	mymap.erase("xxm"); // 删除键为xxm的键值对 
    	mymap.erase(++mymap.begin()) ; // 删除第二个元素 
    	print_map(mymap);
    	mymap.erase(mymap.begin(), mymap.end()); // 删除[mymap.begin(), mymap.end())区间的元素
    	if(mymap.empty()) cout << "mymap已空" << endl;
    	mymap.clear(); // 直接将映射内容全部清空
    } 
    

    运行结果

    -----插入------
    lpp: 3.3
    mqg: 2.2
    xxm: 1.1
    zhx: 4.4
    
    -----通过键获取元素值------
    1.1 0
    lpp: 3.3
    mqg: 2.2
    sjx: 0
    xxm: 1.1
    zhx: 4.4
    
    ----- 判断是否存在某个键------
    1.1
    不存在该键
    
    -----删除------
    lpp: 3.3
    sjx: 0
    zhx: 4.4
    
    mymap已空
    
  • 相关阅读:
    caffe2安装教程
    如何将360极速浏览器的网页背景颜色设置为护眼色
    3ds max启动慢怎么办?
    3dContactPointAnnotationTool开发日志(十八)
    3dContactPointAnnotationTool开发日志(十七)
    3dContactPointAnnotationTool开发日志(十六)
    3dContactPointAnnotationTool开发日志(十四)
    3dContactPointAnnotationTool开发日志(十三)
    js上传图片及预览功能
    photoSlider-原生js移动开发轮播图、相册滑动插件
  • 原文地址:https://www.cnblogs.com/xxmmqg/p/13411704.html
Copyright © 2011-2022 走看看