`
阿尔萨斯
  • 浏览: 4181128 次
社区版块
存档分类
最新评论

c++ 数据结构之STL之 map

 
阅读更多

标准模板库STL中的map

map与之前的set中内容大致相同,但是,保存的数据多了一项保存的数值型数据,即,map可以用一个专门的key来进行排序和搜索,而在Type中储存所需要保存的各类数据。对于map也有一个multimap,储存多个相同key值的数据。

stl中的所有模版都储存在std命名空间中。

#include <map>
using namespace std;

模板原型:
template < class Key, 关键字,用来比较,排序,搜索
class Type, 储存在map中的数值数据,保存各种数据。
class Traits = less<Key>, 关键字比较函数,可以重定义,定义方法与set类似

class Allocator=allocator<pair <const Key, Type> > > 储存管理设备,默认为allocator<pair<const Key,Type>>

由于map比set多了一个专门用来储存的Type,则其可储存更多东西,且可以使用默认的比较函数来进行判断,而专门的用一个函数来计算得到其关键字,更方便于比较,搜索。

begin(),

返回指向首元素的定位器iterator.


clera();清空所有元素。void

count(<template> Key):返回对应Key的元素个数

count(<template> Key):返回对应Key的元素个数,一般时0或1

empty():测试是否为空

end():返回最后一个元素的定位器

equal_range():返回一对定位器,一个指向>= 给定值的第一个Key,>给定值的第一个key。

erase();将一定范围内的元素删除,删除指定元素的方法:

map<int,string> a;
	a.insert(pair<int,string>(compute("aab"),"aab"));
	a.insert(pair<int,string>(compute("aca"),"caa"));
	a.insert(pair<int,string>(compute("aaa"),"aaa"));
	a.insert(pair<int,string>(compute("agg"),"baa"));
	map<int,string>::iterator p;
	p=a.find(compute("agg"));
	a.erase(p);




find(template Key):找出与给定key相同的定位器,若不存在,指向set的结束定位器。

get_allocator():返回set容器的一个allocator的副本

insert() 插入一个元素或一定数量的元素到应该的位置

map<int,string> a;
	a.insert(pair<int,string>(compute("aab"),"aab"));
	a.insert(pair<int,string>(compute("aca"),"caa"));
	a.insert(pair<int,string>(compute("aaa"),"aaa"));
	a.insert(pair<int,string>(compute("aab"),"baa"));

ower_bound()<wbr></wbr>返回指向大于(或等于)某值的第一个元素的迭代器

key_comp()<wbr></wbr>返回一个用于元素间值比较的函数

max_size()<wbr></wbr>返回集合能容纳的元素的最大限值

rbegin()<wbr></wbr>返回指向集合中最后一个元素的反向迭代器

rend()<wbr></wbr>返回指向集合中第一个元素的反向迭代器

size()<wbr></wbr>集合中元素的数目

swap()<wbr></wbr>交换两个指定对象的值。是指保存的数据交换,key保存不变


upper_bound()返回大于某个值元素的迭代器

value_comp()<wbr></wbr>返回一个用于比较元素间的值的函数


operator[key] 寻找指定key的元素,并插入值,若未规定值,则值为默认值

map<int,string> a;
	a.insert(pair<int,string>(compute("aab"),"aab"));
	a.insert(pair<int,string>(compute("aca"),"caa"));
	a.insert(pair<int,string>(compute("aaa"),"aaa"));
	a.insert(pair<int,string>(compute("aab"),"baa"));
	a[6]="awfawf";
	a[2];



分享到:
评论

相关推荐

    【STL源代码】C++标准库STL源代码下载

    【STL源代码】中包含了许多常用的数据结构(如vector、list、map等)和算法(如排序、查找、遍历等)。通过阅读代码可以仔细研究这些数据结构和算法的实现,了解它们的内部工作原理和使用方式。

    c++数据结构与算法实现

    CaseInsensitiveHashTable.cpp: Case insensitive hash table from STL (Figure 5.23) BinaryHeap.h: Binary heap TestBinaryHeap.cpp: Test program for binary heaps LeftistHeap.h: Leftist heap ...

    C++ STL 开发技术导引(随书源码)

    C++ STL标准模板库在数据结构和算法的实践领域发挥着重要的作用。本书共分5篇26章,以“C++编程技术→C++ STL泛化技术基础→C++ STL容器技术→C++ STL算法技术→C++ STL迭代器技术”为线索具体展开,通过大量的源码...

    stl数据结构.docx

    C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现,称为容器,如 queues(队列)、lists(链表)、和 stacks(栈)等。 STL容器是由一些运用最广的一些...

    C++ 数据结构 使用教程

    对C++中STL的常用数据结构进行介绍,如VECTOR,LINK,SET,MAP等,包括类型说明及使用方法介绍。

    C++STL讲解 PPT版本

    容器(Containers):各种数据结构,如Vector,Deque,List,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。 算法(Algorithms):各种常用算法,如Sort,Search...

    stl-查看调试工具.zip

    gdb调试查看c++数据结构map、vector

    本例程提供了C++的STL常用数据结构及其算法的使用范例,比如vector、string、list

    本例程提供了C++的STL常用数据结构及其算法的使用范例,比如vector、string、list、forward_list、deque、queue、stack、map、set、multimap、multiset、tuple、bitset的使用范例,以及algorithm常….zip

    c++11&14-STL要点汇总

    在c++里面不得不提的一个标准库,就是STL,STL包含很多实用的数据结构,如vector,list,map,set等都是我们常用的,而c++11也对STL做了一些补充,使得STL的内容越来越丰富,可选择的也越来越多了。 1. std::array 先看...

    C++STL程序员开发指南【可搜索+可编辑】

    1-1-9 结构数据类型的变化............................................ 13 1-1-10 数组和指针技术的不同......................................... 14 1-2 C++存储技术............................................

    数据结构:映射.pdf

    数据结构:映射 数据结构:映射 我们通常所⽤的map其实就是⼀棵红⿊树,如果有平衡树问题能够⽤它来解决⼀定要⽤,不要⼿写了,因为红⿊树的效率是⾮常棒的 先看⼏个定义: map,int&gt; m1; map,map,int&gt; &gt;m2; multiset...

    谷歌 B-Tree C++ 模板库.

    类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、btree_set、btree_multimap和btree_multiset等模板。 B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构...

    准备蓝桥杯c++比赛说明.zip

    熟悉常用的C++标准库,如STL(标准模板库),包括vector、map、set等容器的使用。 学习算法和数据结构: 算法是蓝桥杯比赛的核心,务必熟练掌握常见的算法,如排序、查找、递归、动态规划等。 理解并掌握基本的数据...

    STL源码剖析.pdg

    4.2.4 vector 的数据结构 118 4.2.5 vector 的构造与内存管理:constructor, push_back 119 4.2.6 vector 的元素操作:pop_back, erase, clear, insert 123 4.3 list 128 4.3.1 list 概述 128 4.3.2 list 的...

    STL源码剖析

    这本书不适合C++ 初学者,不适合 Genericity(泛型技术)初学者,或 ...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。

    C++标准模板库map的常用操作

    map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能。 命名空间为std,所属头文件&lt;map&gt; 注意:不是&lt;map&gt; 二:常用操作 容量: a.map中实际数据的数据...

    数据结构与算法分析

     本书是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找...

    STL 源码剖析(侯捷先生译著)

    那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。 目录回到顶部↑庖丁解牛(侯捷自序) i 目录 v 前言 xvii 本书...

    标准模板库(STL)源码剖析

    这本书不适合C++ 初学者,不适合 Genericity(泛型技术)初学者,或 ...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。

    STL源码剖析-简体中文PDF

    《STL源码剖析》 PDF 简体中文 扫描版本 这本书不适合C++ 初学者,不...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。

Global site tag (gtag.js) - Google Analytics