标准模板库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源代码】中包含了许多常用的数据结构(如vector、list、map等)和算法(如排序、查找、遍历等)。通过阅读代码可以仔细研究这些数据结构和算法的实现,了解它们的内部工作原理和使用方式。
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标准模板库在数据结构和算法的实践领域发挥着重要的作用。本书共分5篇26章,以“C++编程技术→C++ STL泛化技术基础→C++ STL容器技术→C++ STL算法技术→C++ STL迭代器技术”为线索具体展开,通过大量的源码...
C++ STL (Standard Template Library标准模板库) 是通用类模板和算法的集合,它提供给程序员一些标准的数据结构的实现,称为容器,如 queues(队列)、lists(链表)、和 stacks(栈)等。 STL容器是由一些运用最广的一些...
对C++中STL的常用数据结构进行介绍,如VECTOR,LINK,SET,MAP等,包括类型说明及使用方法介绍。
容器(Containers):各种数据结构,如Vector,Deque,List,Set,Map,用来存放数据,STL容器是一种Class Template,就体积而言,这一部分很像冰山载海面的比率。 算法(Algorithms):各种常用算法,如Sort,Search...
gdb调试查看c++数据结构map、vector
本例程提供了C++的STL常用数据结构及其算法的使用范例,比如vector、string、list、forward_list、deque、queue、stack、map、set、multimap、multiset、tuple、bitset的使用范例,以及algorithm常….zip
在c++里面不得不提的一个标准库,就是STL,STL包含很多实用的数据结构,如vector,list,map,set等都是我们常用的,而c++11也对STL做了一些补充,使得STL的内容越来越丰富,可选择的也越来越多了。 1. std::array 先看...
1-1-9 结构数据类型的变化............................................ 13 1-1-10 数组和指针技术的不同......................................... 14 1-2 C++存储技术............................................
数据结构:映射 数据结构:映射 我们通常所⽤的map其实就是⼀棵红⿊树,如果有平衡树问题能够⽤它来解决⼀定要⽤,不要⼿写了,因为红⿊树的效率是⾮常棒的 先看⼏个定义: map,int> m1; map,map,int> >m2; multiset...
类似于STL的map、set、multimap和multiset模板,C++ B-tree也提供了btree_map、btree_set、btree_multimap和btree_multiset等模板。 B-tree(多路搜索树,并不是二叉的)是一种常见的数据结构。使用B-tree结构...
熟悉常用的C++标准库,如STL(标准模板库),包括vector、map、set等容器的使用。 学习算法和数据结构: 算法是蓝桥杯比赛的核心,务必熟练掌握常见的算法,如排序、查找、递归、动态规划等。 理解并掌握基本的数据...
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 的...
这本书不适合C++ 初学者,不适合 Genericity(泛型技术)初学者,或 ...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。
map是STL的关联式容器,以key-value的形式存储,以红黑树(平衡二叉查找树)作为底层数据结构,对数据有自动排序的功能。 命名空间为std,所属头文件<map> 注意:不是<map> 二:常用操作 容量: a.map中实际数据的数据...
本书是数据结构和算法分析的经典教材,书中使用主流的程序设计语言C++作为具体的实现语言。书的内容包括表、栈、队列、树、散列表、优先队列、排序、不相交集算法、图论算法、算法分析、算法设计、摊还分析、查找...
那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。 目录回到顶部↑庖丁解牛(侯捷自序) i 目录 v 前言 xvii 本书...
这本书不适合C++ 初学者,不适合 Genericity(泛型技术)初学者,或 ...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。
《STL源码剖析》 PDF 简体中文 扫描版本 这本书不适合C++ 初学者,不...那些数据结构、那些算法、那些重要观念、那些编程实务中最重要最根本的珍宝,那些蜇伏已久彷佛已经还给老师的记忆,将重新在你的脑中闪闪发光。