STL map 的基本成员函数
来源:(http://blog.sina.com.cn/s/blog_61533c9b0100fa7w.html) - C++ map的基本操作和使用_Live_新浪博客
Map是c++的一个标准容器,她提供了很好一对一的关系,在一些程序中建立一个map可以起到事半功倍的效果,总结了一些map基本简单实用的操作!
1. map最基本的构造函数;
map<string , int >mapstring; map<int ,string >mapint;
map<sring, char>mapstring; map< char ,string>mapchar;
map<char ,int>mapchar; map<int ,char >mapint;
2. map添加数据;
map<int ,string> maplive;
1.maplive.insert(pair<int,string>(102,"aclive"));
2.maplive.insert(map<int,string>::value_type(321,"hai"));
3, maplive[112]="April";//map中最简单最常用的插入添加!
3,map中元素的查找:
find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向map尾部的迭代器。
map<int ,string >::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else cout<<"wo find 112"<<endl;
4,map中元素的删除:
如果删除112;
map<int ,string >::iterator l_it;;
l_it=maplive.find(112);
if(l_it==maplive.end())
cout<<"we do not find 112"<<endl;
else maplive.erase(l_it); //delete 112;
5,map中 swap的用法:
Map中的swap不是一个容器中的元素交换,而是两个容器交换;
For example:
#include <map>
#include <iostream>
using namespace std;
int main( )
{
map <int, int> m1, m2, m3;
map <int, int>::iterator m1_Iter;
m1.insert ( pair <int, int> ( 1, 10 ) );
m1.insert ( pair <int, int> ( 2, 20 ) );
m1.insert ( pair <int, int> ( 3, 30 ) );
m2.insert ( pair <int, int> ( 10, 100 ) );
m2.insert ( pair <int, int> ( 20, 200 ) );
m3.insert ( pair <int, int> ( 30, 300 ) );
cout << "The original map m1 is:";
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
cout << " " << m1_Iter->second;
cout << "." << endl;
// This is the member function version of swap
//m2 is said to be the argument map; m1 the target map
m1.swap( m2 );
cout << "After swapping with m2, map m1 is:";
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
cout << " " << m1_Iter -> second;
cout << "." << endl;
cout << "After swapping with m2, map m2 is:";
for ( m1_Iter = m2.begin( ); m1_Iter != m2.end( ); m1_Iter++ )
cout << " " << m1_Iter -> second;
cout << "." << endl;
// This is the specialized template version of swap
swap( m1, m3 );
cout << "After swapping with m3, map m1 is:";
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
cout << " " << m1_Iter -> second;
cout << "." << endl;
}
6.map的sort问题:
Map中的元素是自动按key升序排序,所以不能对map用sort函数:
For example:
#include <map>
#include <iostream>
using namespace std;
int main( )
{
map <int, int> m1;
map <int, int>::iterator m1_Iter;
m1.insert ( pair <int, int> ( 1, 20 ) );
m1.insert ( pair <int, int> ( 4, 40 ) );
m1.insert ( pair <int, int> ( 3, 60 ) );
m1.insert ( pair <int, int> ( 2, 50 ) );
m1.insert ( pair <int, int> ( 6, 40 ) );
m1.insert ( pair <int, int> ( 7, 30 ) );
cout << "The original map m1 is:"<<endl;
for ( m1_Iter = m1.begin( ); m1_Iter != m1.end( ); m1_Iter++ )
cout << m1_Iter->first<<" "<<m1_Iter->second<<endl;
}
The original map m1 is:
1 20
2 50
3 60
4 40
6 40
7 30
请按任意键继续. . .
7, map的基本操作函数:
C++ Maps是一种关联式容器,包含“关键字/值”对
begin() 返回指向map头部的迭代器
clear() 删除所有元素
count() 返回指定元素出现的次数
empty() 如果map为空则返回true
end() 返回指向map末尾的迭代器
equal_range() 返回特殊条目的迭代器对
erase() 删除一个元素
find() 查找一个元素
get_allocator() 返回map的配置器
insert() 插入元素
key_comp() 返回比较元素key的函数
lower_bound() 返回键值>=给定元素的第一个位置
max_size() 返回可以容纳的最大元素个数
rbegin() 返回一个指向map尾部的逆向迭代器
rend() 返回一个指向map头部的逆向迭代器
size() 返回map中元素的个数
swap() 交换两个map
upper_bound() 返回键值>给定元素的第一个位置
value_comp() 返回比较元素value的函数
STL map 的基本成员函数相关推荐
- C++ stl 通用算法和成员函数使用
在stl中既有通用函数,又有相同成员函数主要表现在list中. 以remove为例 list<int> coll;// insert elements from 6 to 1 and 1 ...
- 17.容器的成员函数优先于同名的算法
有些STL 容器提供了一些与算法同名的成员函数.大多数情况下,应该使用这些成员函数,而不是相应的STL算法. 有两个理由: 成员函数往往速度快. 成员函数通常与容器结合地更紧密,这是算法所不能比的. ...
- Effective_STL 学习笔记(四十四) 尽量使用成员函数代替同名的算法
有些容器拥有和 STL 算法同名的成员函数. 关联容器提供了 count.find.lower_bound.upper_bound 和 euqal_range list 提供了 remove.remo ...
- map中的erase成员函数用法
转载于 http://www.cnblogs.com/graphics/archive/2010/07/05/1771110.html http://hi.baidu.com/sdkinger/it ...
- stl::map之const函数访问
如何在const成员数中访问stl::map呢?例如如下代码: string ConfigFileManager::MapQueryItem(const string& name) const ...
- STL区间成员函数及区间算法总结
STL区间成员函数及区间算法总结 在这里总结下可替代循环的区间成员函数和区间算法: 相比单元素遍历操作,使用区间成员函数的优势在于: 1)更少的函数调用 2)更少的元素移动 3)更少的内存分配 在区间 ...
- STL的remove函数和list的remove成员函数
今天看书刚刚看的,就记录下来吧.这可能是老生常谈了,权且作为一个警醒的例子吧. 大家都知道STL有两个非常重要的组成部分,容器和算法. 算法就是一个个的函数,通过迭代器和容器关联在一起,完成一些工作. ...
- C++《STL和泛型编程》容器不带/带有成员函数总结
容器不带成员函数count(): array vector list forward_list deque 容器带有成员函数count(): set/multiset map/multima ...
- c++ hashset的用法_c++ stl容器set成员函数介绍及set集合插入,遍历等用法举例
c++ stl集合set介绍 c++ stl集合(Set)是一种包含已排序对象的关联容器.set/multiset会根据待定的排序准则,自动将元素排序.两者不同在于前者不允许元素重复,而后者允许. 1 ...
- map管理成员函数指针
转自:http://bbs.csdn.net/topics/290032347 概括:将成员函数指针名和同名的string类型的变量名进行绑定,插入到map中. 在使用时就可以通过找到string类型 ...
最新文章
- 教你如何更优雅的设计Java异常
- 【Java8】@FunctionalInterface
- 从零开始学Pytorch(十)之循环神经网络基础
- 北理工计算机专业汇编教材,李元章_北京理工大学计算机学院
- 一年级abb式词语并造句_ABB式词语如何活学活用,家长都收藏了!
- druid 配置WebStatFilter 网络统计以及监控
- ZwQuerySystemInformation 枚举驱动模块
- 【利用EXCEL进行数据爬虫】数据爬虫学习
- python模拟ios点击_使用Xcode + Python进行IOS运动轨迹模拟
- C#panel渐变绘制
- c++ 显示三维散点图_办公小技巧:三维展示 用好Excel矩阵图
- 运用京东云代码托管、云编译、云部署等产品进行蓝绿部署简单实践
- 对于机器学习的几点理解
- socket广播报文收发简单梳理
- Tomcat-- 掌握汤姆猫,看这一篇文章就够了
- 氢能源燃料电池行业汇总
- google的fav icon变了
- 几种常用编程语言的区别
- 国产Excel开发组件Spire.XLS【转换】教程(9):C# 中 Excel 97-2003 和 Excel 2007 之间的转换
- 欢迎光临liyuanbicy的博客
热门文章
- VS2003驱动开发环境配置
- Root Pane Container(三)
- 一些老程序员不错的经验分享
- 相对地址转化为绝对地址
- 高校教材:计算机网络技术与应用,《网络技术与应用》计算机网络-教材-高等学校.pdf...
- Unity AssetBundle 资源(纹理,网格,动画,字体,LightMap,音频等)使用 优化
- 启动不起来_汽车没电发动不起来咋办?老司机平时都用这几种方法,简单有效...
- 消防信号二总线有没电压_杭后旗医院消防消防设备电源原理
- oracle序列不连续,Oracle不连续的值,如何实现查找上一条、下一条
- mysql存储过程多值_mysql存储过程之返回多个值的方法示例