/*
map内部数据的组织,map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,
所以在map内部所有的数据都是有序的。
*/
#include <iostream>
#include <map>
using namespace std;
typedef map<int,string> mapStudent;
typedef map<int,string>::iterator mapStudengIter;
typedef pair<int,string> Param;
int main()
{
cout<<"========================"<<endl;
mapStudent mapstudent;
mapStudengIter iter,finditer;
mapstudent[4] = "student_four";
mapstudent.insert(Param(1,"Tongjm"));
mapstudent.insert(Param(2,"Zhaoxp"));
mapstudent.insert(map<int, string>::value_type (3,"student_three"));
mapstudent[10] = "student_ten";
mapstudent[10] = "student_ele";
/*
以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种在效果上是完成一样的,
用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个概念,即当map中有这个关键字时,
insert操作是插入数据不了的,但是用数组方式就不同了,它可以覆盖以前该关键字对应的值,用程序说明
*/
for(iter = mapstudent.begin();iter!=mapstudent.end();iter++ )
{
cout<< iter->first<<"--->"<<iter->second<<endl;
}
cout<<mapstudent.size()<<endl;
cout<<mapstudent[10]<<endl;
/*
用find函数来定位数据出现位置,它返回的一个迭代器,当数据出现时,它返回数据所在位置的迭代器,
如果map中没有要查找的数据,它返回的迭代器等于end函数返回的迭代器,程序说明
*/
finditer = mapstudent.find(2);
if(finditer!=mapstudent.end())
{
cout<< finditer->first<<"--->"<<finditer->second<<endl;
}
/*
数据的清空与判空
清空map中的数据可以用clear()函数,判定map中是否有数据可以用empty()函数,它返回true则说明是空map
*/
if((!mapstudent.empty())== true)
cout<<"非空"<<endl;
int n = mapstudent.erase(9);
for(iter = mapstudent.begin();iter!=mapstudent.end();iter++ )
{
cout<< iter->first<<"--->"<<iter->second<<endl;
}
//功能等同于 mapstudent.clear()
mapstudent.erase(mapstudent.begin(),mapstudent.end());
//mapstudent.clear();
if(mapstudent.empty()== true)
cout<<"空"<<endl;
system("pause");
}
分享到:
相关推荐
下面我们将详细探讨`map`的基本用法和嵌套用法。 ### 一、map基本用法 1. **头文件** 使用`<map>`头文件来包含`map`容器的相关定义。 2. **定义** 可以直接定义一个`map`,如`map, int> my_Map;`。如果需要...
本文详细介绍了C++ `map`容器的基础使用方法以及一些高级特性,包括构造函数、添加数据、查找和删除元素等基本操作,同时还讨论了如何使用自定义比较器、统计元素数量等高级功能。掌握了这些技巧后,开发者可以更...
在本示例中,“C++map使用小例子”提供了关于如何在C++程序中使用`std::map`的基本操作和应用。 `std::map`的主要特点和操作包括: 1. **插入元素**:可以使用`insert`函数或直接使用下标运算符`[]`来插入键值对。...
C++ 中 Map 的基本操作和使用 Map 是 C++ 中的一个标准容器,它提供了一对一的关系,在一些程序中建立一个 Map 可以起到事半功倍的效果。下面总结了一些 Map 的基本操作和使用。 Map 简介 Map 是一种关联式容器。...
自定义`Map`的基本结构通常包括以下组件: 1. **节点(Node)**:存储键值对的结构体,包含一个键和一个值。 2. **比较器(Comparator)**:用于确定键的排序规则,通常是`std::less<Key>`或`std::greater<Key>`。 ...
C++ Map常见用法说明 C++ 中的 Map 是一种键值对容器,里面的数据都是成对出现的,每一对中的第一个值称之为关键字(key),每个关键字只能在 Map 中出现一次;第二个称之为该关键字的对应值。 声明和赋值 Map 的...
在实际应用中,我们通常使用以下方法构造一个 map: `Map, string> mapStudent;` 数据的插入 在构造 map 容器后,我们可以往里面插入数据。有三种插入数据的方法: 1. 使用 insert 函数插入 pair 数据 我们可以...
本教程将深入探讨`map`容器的基本概念、特性以及如何在实际编程中使用。 `map`容器的主要特点: 1. **键值对**:`map`中的每个元素都是一个键值对,由一个键(key)和一个关联的值(value)组成。键必须是唯一的,...
C++ STL--map 和 algorithm C++ STL 中的 map 和 algorithm 是两种非常重要的组件,map 是一种关联式容器,能帮助我们建立一一对应的关系,而 algorithm 则提供了一些常用的算法来处理数据。 Map 简介 map 是一种...
C++中map的基本操作 map是一类关联式容器,可以根据key值快速查找记录,并且可以自动建立Key - value的对应。下面将详细介绍C++中map的基本操作。 1. 使用map 使用map需要包含map类所在的头文件`#include <map>`...
在本文中,我们将深入探讨`map`的基本概念、特性、操作以及实际应用,帮助你全面掌握C++ `map`的用法。 ### 1. `map`的定义与类型 `map`是C++标准库中`<map>`头文件的一部分,它是一个红黑树(Red-Black Tree)...
在本案例中,"c++MAP使用例子程序"是一个在Visual Studio 2005环境下通过编译并运行的示例,旨在帮助学习者理解如何在C++中有效使用`std::map`。 `std::map`的基本操作包括插入元素、查找元素、删除元素以及迭代器...
C++中map容器的说明和使用技巧 C++中map容器提供一个键值对容器,map与multimap的差别仅仅在于multiple允许一个键对应多个值。map容器的使用技巧包括插入数据、查找数据和修改数据、删除数据、迭代数据等。 一、...
### C/C++ STL Map #### 一、简介与基本概念 `std::map` 和 `std::multimap` 是 C++ 标准模板库 (STL) 中非常重要的容器类型,用于存储键值对(key-value pairs)...理解它们的基本特性和用法对于高效编程至关重要。
总的来说,这个压缩包中的文件可能包含了一个关于如何在C++中使用`map`数据结构和内存映射文件的实例教程或项目,通过这些源代码,我们可以学习到如何在实际应用中有效地管理和操作这两种关键的资源。
在"C++基本用法试验代码"中,我们可以深入学习和理解C++这门强大的编程语言。这个代码集合主要涵盖了C++的基础元素,包括标准库的使用、类的定义以及容器如vector和map的操作。以下是对这些知识点的详细阐述: 1. *...
在 C++ 中,我们可以使用 `std::find_if` 算法来查找 map 中的元素。`std::find_if` 算法需要两个参数,一个是迭代器范围,另一个是谓词(函数对象)。在我们的例子中,我们可以使用 lambda 表达式作为谓词。 ```cpp...
* 2、支持快速查找,查找的复杂度基本是Log(N) * 3、快速插入,快速删除,快速修改记 * /************************************************************************/ #include #include #include <map> using ...
下面将详细介绍`map`的基本用法和操作。 1. **构造函数**: `map`的构造函数允许我们初始化容器,例如: - `map, int> mapString;` 创建一个字符串到整数的映射。 - `map, string> mapInt;` 创建一个整数到字符...