`
灵动的水
  • 浏览: 195855 次
  • 性别: Icon_minigender_1
  • 来自: 济南
社区版块
存档分类
最新评论

map使用小总结

 
阅读更多
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的函数

分享到:
评论

相关推荐

    map总结,原理,使用

    ### Map 总结:原理与使用详解 #### 一、Map 概述 **Map** 是 C++ STL(Standard Template Library)中的一种关联容器,它主要用于存储键值对(Key-Value pairs)。Map 的特点在于它能高效地进行查找、插入和删除...

    Map遍历方法总结

    ### Map遍历方法总结 #### 一、引言 在Java编程中,`Map`是一种常用的集合类型,用于存储键值对数据。由于其高效的数据查找特性,在许多场景下都有广泛的应用。对于开发者来说,了解如何有效地遍历`Map`中的元素是...

    std map容器用法总结

    `std::map`默认使用键的`运算符进行排序,但可以通过提供自定义的比较函数对象作为模板参数来改变这一行为。 9. **效率分析**: 插入、查找和删除操作的时间复杂度在平均和最坏情况下都是O(log n),这是因为`std:...

    C++ map使用

    C++中的`map`是一种关联式容器,它...总结,C++中的`map`是编程中非常实用的数据结构,它提供了高效的键值对管理,适用于需要快速查找和关联数据的场景。理解和熟练使用`map`可以帮助开发者编写更加高效和简洁的代码。

    rammap自动运行程序

    总结来说,RAMMap是一款强大的内存分析工具,通过Python等编程语言可以实现其自动化运行,从而更好地管理和优化系统的内存资源。了解如何正确配置和利用RAMMap的自动化功能,对于系统管理员和性能优化人员来说,是...

    echarts map-geo 使用实例

    总结起来,ECharts 的 `map` 和 `geo` 组件是强大的地图绘制工具,它们不仅可以呈现基础的地图视图,还能结合数据进行丰富的定制化展示,为数据分析和决策提供有力支持。通过不断探索和实践,开发者可以利用这些组件...

    depthmap10 软件使用教程

    ### Depthmap10软件使用教程知识点汇总 #### 一、深度了解Depthmap10 - **简介** - **发布日期与版本**:2010年9月发布的Depthmap10版本为10.08.00r。 - **作者**:Joao Pinelo 和 Alasdair Turner。 - **目的**...

    微信小程序map组件

    总结来说,微信小程序的Map组件是实现地图功能的核心,结合微信开发者工具,开发者可以轻松地构建出各种地图相关的交互和功能。熟练掌握Map组件的使用,对于提升微信小程序的实用性与用户体验至关重要。在实际项目中...

    javascript 中Map的使用

    总结,JavaScript中的Map提供了一种强大且灵活的键值对存储机制,其丰富的操作方法和与其他数据结构的差异性,使其在处理特定场景的数据时表现出色。学习和掌握Map的使用,对于提升JavaScript编程能力具有重要意义。

    route-map不错的路由过滤总结

    Route-map不错的路由过滤总结 Route-map 是一种强大的路由过滤工具,常用于路由协议之间的重分布、Policy-Based Routing(PBR)和 Border Gateway Protocol(BGP)。本文将对 Route-map 的配置和应用进行详细的总结...

    map.toString()后转换成Map类型

    - 使用`map.toString()`方法将Map对象转换为字符串。 - 为了便于后续处理,可以对生成的字符串进行一定的格式化,例如去除括号`{}`,并用特定字符替换分隔符``,`。 2. **字符串转换为Map对象:** - 首先,对经过...

    VS MAP 文件使用

    ### VS MAP 文件使用详解 #### 一、引言 在软件开发过程中,程序崩溃是常见的问题之一,尤其在复杂的多线程环境中,定位崩溃的原因往往非常困难。Microsoft Visual Studio (以下简称VS) 提供了多种工具和技术来...

    java中map的使用实例

    总结来说,选择哪种Map取决于你的需求:HashMap适合快速查找且不需要特定顺序;LinkedHashMap适合需要保持插入顺序或者访问顺序的场景;而TreeMap则适用于需要有序遍历的情况。理解并正确使用这些Map类可以帮助你...

    java一键xml转map,一键map转xml工具类

    总结来说,`EasyXmlUtil`是一个实用的Java工具类,它封装了XML与Map之间的相互转换功能,使得开发者能方便快捷地处理这两种数据格式。通过理解和使用此类,可以提高开发效率,简化数据处理的复杂性。在项目中,只需...

    VC STL map 使用方法(添加,查找,删除)

    ### VC STL map 使用方法详解:添加,查找,删除 在C++编程中,`map`容器是标准模板库(STL)中一个非常强大的数据结构,用于存储键值对,其中键是唯一的,且默认情况下按照键的升序排列。在Visual C++ (VC) 编译...

    Map最常规的两种遍历方法

    在上面的代码中,我们首先使用map.values()方法获取一个Collection集合,然后使用Iterator迭代器来遍历该集合。在遍历过程中,我们使用ite.hasNext()方法来判断是否还有下一个元素,如果有,则使用ite.next()方法...

    js中Map应用

    本文将详细介绍如何在JavaScript中使用`Map`进行添加、删除、修改等操作。 #### Map的基本概念 `Map`对象是一种可迭代的容器,能够存储任何类型的键值对,并保持键值对的原始插入顺序。`Map`对象提供了很多内置的...

    对Map的key和value进行排序

    对Map中的key进行排序可以使用TreeMap来实现。TreeMap是一个有序的Map,它可以根据key的自然顺序或自定义的比较器来排序。在下面的示例代码中,我们使用TreeMap来对字符串形式的key进行自然逆序排序。 ```java Map,...

    MAP文件详细解析

    #### 五、MAP文件的使用 假设我们有一个简单的示例程序,其中包含了可能导致崩溃的代码。以下是一个具体的例子: ```cpp void Crash(void) { int i = 1; int j = 0; i /= j; // 除0错误 } void main(void) { ...

    cognos map控件的使用

    将创建的数据表打包成Cognos包,并命名为“cognos map”,以便在Report Studio中使用。 #### Step 3: 运行 Report Studio 选择已发布的包,导入所需的数据源。 #### Step 4: 添加数据元素 在Report Studio中,从...

Global site tag (gtag.js) - Google Analytics