`
3895177
  • 浏览: 23658 次
社区版块
存档分类
最新评论

STL的map

    博客分类:
  • STL
 
阅读更多

      std::map是一个很常用的标准容器,采用红黑树或者平衡二叉树来储存节点内容,具有对数复杂度的插入时间和查找时间。这里简单说下它的一些值得注意的关注点。

1 定义
map<string, int> my_Map;
或者是

typedef map<string, int> MY_MAP;
MY_MAP my_Map;

2 插入数据
(1) my_Map["a"] = 1;
(2) my_Map.insert(map<string, int>::value_type("b",2));
(3) my_Map.insert(pair<string,int>("c",3));
(4) my_Map.insert(make_pair("d",4));

3 查找数据和修改数据
(1) int i = my_Map["a"];
my_Map["a"] = i;
(2) MY_MAP::iterator my_Itr;
my_Itr.find("b");
int j = my_Itr->second;
my_Itr->second = j;
不过注意,键本身是不能被修改的,除非删除。

4 删除数据
(1) my_Map.erase(my_Itr);
(2) my_Map.erase("c");
还是注意,第一种情况在迭代期间是不能被删除的,道理和foreach时不能删除元素一样。

5 迭代数据
for (my_Itr=my_Map.begin(); my_Itr!=my_Map.end(); ++my_Itr) {}

6 其它方法
my_Map.size() 返回元素数目
my_Map.empty() 判断是否为空
my_Map.clear() 清空所有元素
可以直接进行赋值和比较:=, >, >=, <, <=, != 等等

分享到:
评论

相关推荐

    windbg导出stl map和set的插件

    在处理复杂的系统问题时,尤其是对于C++程序中的STL(Standard Template Library,标准模板库)容器,如map和set,理解其内部结构和内容至关重要。这个插件“stlkit.dll”就是为了帮助开发者更便捷地在Windbg中查看...

    stl_map.rar_STL 自己_STLmap_lips62k

    在这个“stl_map.rar”压缩包中,作者分享了一个自编的STL库实现,特别是针对map容器的部分。Map在C++中是一个关联容器,它按照键(key)的顺序来存储元素,每个键值对应一个值(value),并且键值是唯一的。 首先...

    学习STL MAP, STL SET之数据结构基础

    在STL中,`map`和`set`是两种关联容器,它们主要用于存储键值对(map)或唯一元素(set)。本文将深入探讨这两个容器的数据结构基础,以及它们在插入、删除和迭代器有效性方面的特性。 首先,`map`和`set`在STL中的...

    STL map例子

    其中,`map`容器是STL中的一种关联容器,用于存储键值对(key-value pairs),它按照键的顺序进行排序,提供了类似于字典的功能。在本例子中,我们将深入探讨`map`的基本操作,包括插入元素、删除元素、修改元素以及...

    STL_map_algorithm.ppt

    stl map algorithm ppt 精品课件

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

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

    STL-map.rar_C++ map_C++map_map stl_stl map

    在这个“STL-map.rar”压缩包中,我们找到了名为“STL-map.mht”的文件,它可能包含有关C++ `map`的详细解释和实例代码。 `map`的主要功能是提供一种基于键进行查找的数据结构,它的内部实现通常是一个红黑树,确保...

    C++98 STL的map 如何避免自动排序.md

    C++11中有无序map即: unordered_map 可以不自动排序, 那么C++98中只有map 如何避免自动排序。

    map_map_增删查改_STL_C++_

    本节我们将深入探讨STL中的`map`容器,了解其基本概念,并通过实际代码示例展示如何进行增、删、查、改等操作。 `map`容器是一种关联容器,它将唯一的键值与关联的值进行存储,这里的键值通常是用来查找对应值的。`...

    STLyuanmapouxi.rar_STLyuanmapouxi_jjalloc_stl map_stl源码剖析

    在这个压缩包中,我们找到了与STL中map容器相关的实例,以及可能包含的一些关于内存管理的"jjalloc"相关内容。 STL是C++语言中的一个核心组件,它提供了高效的数据结构和算法,如vector、list、set、map等。其中,...

    STL_map初始化和排序

    `STLmap.cpp`可能是主代码文件,而`StdAfx.h`包含预编译头,`STLmap.dsp`和`STLmap.dsw`是项目文件,用于在Visual Studio中管理项目。其他文件如`.ncb`(IntelliSense数据库)、`.opt`(编译选项)和`.plg`(编译...

    stl中map用法详解

    在STL中,`map`的数据结构通常实现为红黑树,这使得它具有O(log n)的时间复杂度,非常适合进行查找、插入和删除操作。 ### 1. `map`的基本使用 创建一个`map`非常简单,只需要声明一个`map`类型,并指定键和值的...

    用STL中的map或者vector实现统计一段文章中的不同单词的个数的功能,学习STL必练题目

    实现统计一段文章的每个单词的个数...其中CountDemo使用STL中的Map来实现的 CountDemo2是用一般语言实现,没有用到STL实现的; MapCount是用STL中的Vector和Map共同实现的 此题目是学习STL中的Map和Vector必练的经典题目

    STL map 阅读源码有感,map简单实现

    在STL中,`map`是一个关联容器,它存储键值对,并且通过键来唯一确定每个元素的位置。键通常是唯一的,而对应的值可以重复。`map`内部使用红黑树(Red-Black Tree)算法来实现,保证了操作的时间复杂度在O(log n)...

    STL中map用法详解

    其中,`map`容器是STL中用于存储键值对(key-value pairs)的数据结构,适用于关联式查找和操作。本文将深入解析STL中的`map`用法,帮助你理解其基本概念、操作和应用场景。 1. **map的基本概念** `map`是一个关联...

    CMap.rar_C++ map_C++ stl map_CMAP vector_cmap

    一个学习STL 中Map的类,主要实现stl::map的查找、删除、增加等

    STL.zip_Map 排序_STL_Table_stl map实现

    源码之前了无秘密,你将看到vector的实现、list的实现、heap的实现、deque的实现、Red Black tree的实现、hash table的实现、set/map的实现;你将看到各种算法(排序、查找、排列组合、数据移动与复制技术)的实现;你...

    STL测试程序map的使用方法

    `stlmap2.dsp`和`stlmap2.dsw`是Visual Studio的项目文件,用于组织和管理源代码;`a.cpp`可能包含了实际的STL map测试代码;而`.opt`, `.plg`, `.ncb`等文件则是VS的工作区设置和编译过程中的中间文件。 在项目`a....

    以STL::map实现引用表

    以STL::map实现引用表,如有错误,欢迎指教!

    SGI STL源码.zip

    STL包含了一系列容器类,如vector(动态数组)、list(双向链表)、deque(双端队列)、set(红黑树实现的集合)、map(键值对映射)等。这些容器可以存储不同类型的数据,并提供了方便的插入、删除和访问操作。 2...

Global site tag (gtag.js) - Google Analytics