STL模板_map

map

  -key - value

  -键值无法重复

multimap

  -键值可以重复

声明:

  -map<int, string> m

  -multimap<int, string> mm

增加:

  -m.insert(make_pair(5, "5"));

  -mm.insert(make_pair(1, "a"));

  -mm.insert(make_pair(1, "b"));

迭代器:

  -map<int, string>::iterator it;

  -multimap<int, string>::iterator mit;

删除:

  -m.erase(5); // 返回值为后一个元素的位置

  -m.erase(it);

  -mm.erase(1); // 返回值为删除的元素个数

  -mm.erase(mit);

查看:

  -it.first  5;

  -it.second = m[5];

时间: 2025-01-04 00:24:07

STL模板_map的相关文章

STL模板类--数据结构与算法

STL提供了一些模板类,实现了<数据结构>中的一些数据结构类型 在写代码时用到栈,队列等数据结构时可以充分利用STL模板类,会发现特别好用. 想起C语言中用数组实现栈和队列,简直就是噩梦. C++是世界上最好的语言...(just kidding !!!) 顺序容器:动态数组vector;deque链表list; 关联容器:set/multiset有序值:map/multimap有序键值对 一. 动态数组vector类 1.定义:#include<vector>  std::vec

【BZOJ1058】【ZJOI2007】报表统计 stl模板

题意题解不多说,以前从来不{屑于}写stl,,今天学一学..我就是来贴一份{banlakeji的}stl模板的. 代码: #include <set> #include <cstdio> #include <cstring> #include <iostream> #include <algorithm> #define N 501000 #define inf 0x3f3f3f3f using namespace std; int n,m; i

C++面试笔记--STL模板与容器

1.C++ STL 之所以得到广泛的赞誉,也被很多人使用,不只是提供了像vector, string, list等方便的容器,更重要的是STL封装了许多复杂的数据结构算法和大量常用数据结构操作.vector封装数组,list封装了链表,map和set封装了二叉树等 2.标准关联容器set, multiset, map, multimap内部采用的就是一种非常高效的平衡检索二叉树:红黑树,也成为RB树(Red-BlackTree).RB树的统计性能要好于一般的平衡二叉树 3.STL map和set

STL模板_概念

模板和STL一.模板的背景知识1.针对不同的类型定义不同函数版本.2.借助参数宏摆脱类型的限制,同时也因为失去的类型检查而引 入风险.3.借助于编译预处理器根据函数宏框架,扩展为针对不同类型的 具体函数版本,一方面统一编写通用的算法和结构,另一方面 也具有函数调用的类型安全性.4.通过编译器根据函数模板生成具体函数——类型参数化.int add (int x, int y) { ... } // x和y是值参数int a = 10, b = 20, c;c = add (a, b);templa

C++ 泛型程序设计与STL模板库(1)---泛型程序设计简介及STL简介与结构

泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++的模板为泛型程序设计奠定了关键的基础 术语:概念 用来界定具备一定功能的数据类型.例如: 将"可以比大小的所有数据类型(有比较运算符)"这一概念记为Comparable 将"具有公有的复制构造函数并可以用'='赋值的数据类型"这一概念记为Assignable 将"可以比大小.具有公有的复制构造函数并可以用'='赋值的所有数据类型"这个概念记

C++STL模板库之vector

目录 STL之Vecter 一丶STL简介 二丶Vector用法 1.vector容器的使用 2.vector迭代器. 3.vector中的方法. STL之Vecter 一丶STL简介 STL 是标准模板库的意思. 就是数据结构,封装成类让我们使用. 使用的时候我们要了解数据结构才可以使用这些类.因为数据结构不知道是什么结构你用类的话也用不明白. 二丶Vector用法 1.vector容器的使用 首先介绍的第一个序列容器就是 vector. 它底层是数组.可以理解为是动态数组. 我们自己也可以写

STL模板_智能指针概念

一.智能指针1.类类型对象,在其内部封装了一个普通指针.当智能指针对象因离开作用域而被析构时,其析构函数被执行,通过其内部封装的普通指针,销毁该指针的目标对象,避免内存泄露.2.为了表现出和普通指针一致的外观和行为,重载了解引用运算符(*)和间接成员访问运算符(->)函数,令其使用者可以将一个智能指针当成普通指针一样地使用.3.智能指针没有拷贝语义,只有转移语义,任何时候都只有一个智能指针对象持有真正的对象地址.4.智能指针不支持对象数组.二.模板的非类型参数1.无论是函数模板还是类模板,其模板

STL模板中的map的使用与例题

最近的计分赛,记得自己的都只是过了两题.遇到了两次map,自己在寒假看了一点的map,只知道在字符串匹配的时候可以用的到.但是自己对map的使用还是不够熟练使用,这回在第一次和第二次的计分赛中都遇到可以用map快速写出的AC题目.而且代码精简. map是一种二叉树的数据存储结构.map内部自建一颗红黑树(一种非严格意义上的平衡二叉树),这颗树具有对数据自动排序的功能,所以在map内部所有的数据都是有序的. map的特点:  1.存储Key-value对                     

C++ STL模板

C++中的STL(Standard Template Library)用起来挺方便的,这里我们来做一下总结. 一.set set是STL中一种标准关联容器 (vector,list,string,deque都是序列容器,而set,multiset,map,multimap是标准关联容器),它底层使用 平衡的搜索树——红黑树实现,插入删除操作时仅仅需要指针操作节点即可完成,不涉及到内存移动和拷贝,所以效率比较高. 在set中元素都是唯一的,而且默认情况下会对元素 自动进行升序排列,支持集合的交(s