加载中…
个人资料
  • 博客等级:
  • 博客积分:
  • 博客访问:
  • 关注人气:
  • 获赠金笔:0支
  • 赠出金笔:0支
  • 荣誉徽章:
正文 字体大小:

std::map的基本用法

(2011-09-22 08:54:22)
标签:

stdmap

杂谈

分类: C语言

std::map的基本用法

map的基本用法:如插入、查找、删除、遍历等等,同时告诉你如何实现双键map,包括

(1) 只有两个键都匹配才命中目标
(2) 两个键中任意一个匹配就命中目标

可以扩展到多键


(一) 介绍
特点:
1.map将Key的object和T的Object绑定到一起,因此是一种Pair Associative Container, 表示其value type为 pair。
2.它同时也是Unique Associative Container,表示没有两个元素具有相同的Key。
3.它还是一种Sorted Associative Container,因此第三个参数只能是less,greater之类的functor, 相比较而言,
  hash table是 equal_to, not_equal_to之类的functor。
(二) 基本用法
通过以下范例,可以看出map的一些基本用法: 插入、查找、删除、遍历、遍历循环中删除等等。

#if defined (_MSC_VER)
#pragma warning(disable: 4786)
#endif
#include <iostream>
#include <map>
#include <algorithm>
int main(int argc, char *argv[])
{
   
    std::map<int,double> _map;
   
   
    _map.insert( std::map<int,double>::value_type(0, 32.8) );
    _map.insert( std::map<int,double>::value_type(1, 33.2) );
    _map.insert( std::map<int,double>::value_type(2, 35.8) );
    _map.insert( std::map<int,double>::value_type(3, 36.4) );
    _map.insert( std::map<int,double>::value_type(4, 37.8) );
    _map.insert( std::map<int,double>::value_type(5, 35.8) );
   
   
    _map[7] = 245.3;
   
   
    std::map<int,double>::iterator itr;
    itr = _map.find(4);
   
    if( itr != _map.end() )
    {
        std::cout  << "Item:"  << itr->first << " found, content: " << itr->second << std::endl;
    }
   
    std::cout  << std::endl;
   
   
    if( itr != _map.end() )
    {
        _map.erase(itr);
    }
   
   
    std::map<int,double>::iterator itr1  _map.begin();
    for(  itr1  !=  _map.end();)
    {
 //travel delete item from map
if(itr1->first == 2)
 {
  _map.erase(it++);
continue;   }
 
       std::cout  << "Item:"  << itr1->first << ", content: " << itr1->second << std::endl;
++it;     }
   
    std::cout  << std::endl;
   
   
    _map.clear();
   
    return 0;
}

0

阅读 收藏 喜欢 打印举报/Report
  

新浪BLOG意见反馈留言板 欢迎批评指正

新浪简介 | About Sina | 广告服务 | 联系我们 | 招聘信息 | 网站律师 | SINA English | 产品答疑

新浪公司 版权所有