C++标准库map类型
2015-09-01 22:12
337 查看
map是一种关联容器,所谓的关联容器是指支持高效的关键字查找和访问。map中的元素为一些关键字-值(key-value)对,关键字起到索引值的作用,且map中的元素是按照关键字升序排序的。还有map是个映射,所以它的关键字和值是一一对应的。接下来就为大家介绍map的用法
find函数具体用法实例如下
(1)传递给erase一个迭代器
(2)传递给erase一个迭代器对
(3)传递给erase一个key_value
map的删除方法如下实例
[thead]
1.map的定义
我们可以用如下方法定义或初始化map//空容器 map<int,string> m1; //值初始化map map<string,string> m2 = {{"001","shreck"}, {"002","leo"} };
2.为map添加元素
我们可以用如下方法为map添加元素map<string,string> m; //方法一 m.insert(pair<string,string>("001",""shreck)); //方法二 m.insert(map<string,string>::value_type("002",""leo)); //方法三 m[2] = "lewin";
3.map中查找某个元素
我们使用find函数来查找map中的元素,若查找失败则返回尾部迭代器find函数具体用法实例如下
#include<iostream> #include<map> using namespace std; int main(int argc,char **argv) { map<int,string> m; m[0] = "shreck"; m[1] = "leo"; //使用find函数查找leo auto it = m.find(1); if(it == m.end()) { cout<<"未找到该元素"<<endl; } else { cout<<"该元素为:"<<it->second<<endl; } return 0; }
4.map的删除
map的删除方法有三种(1)传递给erase一个迭代器
(2)传递给erase一个迭代器对
(3)传递给erase一个key_value
map的删除方法如下实例
#include<iostream> #include<map> using namespace std; //遍历函数 void print(const map<int,string> &m) { for(auto x:m) { cout<<x.second<<" "; } cout<<endl; } int main(int argc,char **argv) { map<int,string> m; m[0] = "shreck"; m[1] = "leo"; m[2] = "lewin"; m[3] = "lyh"; m[4] = "lz"; //传一个迭代器 auto it1 = m.find(2); m.erase(it1); print(m); //传一对迭代器 auto it2 = m.find(1); auto it3 = m.find(4); m.erase(it2,it3); print(m); //传一个key_value m.erase(0); print(m); return 0; }
5.map的一些基本操作函数
函数 | 作用 |
---|---|
begin() | 返回map的头部迭代器 |
end() | 返回指向map末尾的尾部迭代器 |
clear() | 删除容器中所有元素 |
empty() | 判断map是否为空 |
erase() | 删除map中的元素 |
find() | 查找一个元素 |
insert() | 插入一个元素 |
size() | 返回map中的元素个数 |
max_size() | 返回map可容纳的最大元素个数 |
lower_bound() | 指向第一个关键字不小于K的元素 |
upper_bound() | 指向第一个关键字大于k的元素 |
相关文章推荐
- C++ 类 直接定义对象与new对象的区别
- C++ 类 直接定义对象与new对象的区别
- c语言练习题 4-2 矩阵运算
- C++面试基础题错题集 day one
- C/C++中实型数据的存储格式
- C++中const的使用
- POJ C++程序设计 编程题#3 编程作业—文件操作与模板
- POJ C++程序设计 编程题#2 编程作业—文件操作与模板
- C++ 浮点数的存储结构
- 《IOS_C语言》函数指针、函数回调、动态排序、函数返回值是函数指针
- POJ C++程序设计 编程题#1 编程作业—文件操作与模板
- c语言练习题 4-1 删数
- C语言中system函数用法解释
- 二叉树的序列化和反序列化
- 一起talk C栗子吧(第四十六回:C语言实例--广度优先遍历)
- gcc编译C++程序
- C++中unordered_map出现的若干问题详解(找不到库,找不到unorded_map,编译问题)
- 笔记----------------------------------c++小知识
- c++的头文件
- C语言结构体(struct)理解