C++ 标准模板库STL multimap 使用方法与应用介绍

C++ Multimaps和maps很相似,但是MultiMaps允许重复的元素。(具体用法请参考map容器)

函数列表:

begin() 返回指向第一个元素的迭代器

clear() 删除所有元素

count() 返回一个元素出现的次数

empty() 如果multimap为空则返回真

end() 返回一个指向multimap末尾的迭代器

equal_range() 返回指向元素的key为指定值的迭代器对

erase() 删除元素

find() 查找元素

get_allocator() 返回multimap的配置器

insert() 插入元素

key_comp() 返回比较key的函数

lower_bound() 返回键值>=给定元素的第一个位置

max_size() 返回可以容纳的最大元素个数

rbegin() 返回一个指向mulitmap尾部的逆向迭代器

rend() 返回一个指向multimap头部的逆向迭代器

size() 返回multimap中元素的个数

swap() 交换两个multimaps

upper_bound() 返回键值>给定元素的第一个位置

value_comp() 返回比较元素value的函数

////////////////////////////////////////////////////////////////////////////////////

构造函数

explicit multimap(const Pred& comp = Pred(), const A& al = A());

multimap(const multimap& x);

multimap(const value_type *first, const value_type *last,

const Pred& comp = Pred(), const A& al = A());

begin

语法:

iterator begin();

begin()函数返回一个迭代器,指向multimap的第一个元素。

clear

语法:

void clear();

clear()函数删除multimap中的所有元素。

count

语法:

size_type count( const key_type &key );

count()函数返回multimap中键值等于key的元素的个数。

empty

语法:

bool empty();

empty()函数返回真(true)如果multimap为空,否则返回假(false)。

end

语法:

iterator end();

end()函数返回一个迭代器,指向multimap的尾部。

equal_range

语法:

pair equal_range( const key_type &key );

equal_range()函数查找multimap中键值等于key的所有元素,返回指示范围的两个迭代器。

erase

语法:

void erase( iterator pos );

void erase( iterator start, iterator end );

size_type erase( const key_type &key );

erase()函数删除在pos位置的元素,或者删除在start和end之间的元素,或者删除那些值为key的所有元素。

find

语法:

iterator find( const key_type &key );

find()函数返回一个迭代器指向键值为key的元素,如果没找到就返回指向multimap尾部的迭代器。

get_allocator

语法:

allocator_type get_allocator();

get_allocator()函数返回multimap的配置器。

insert

语法:

iterator insert( iterator pos, const TYPE &val );

void insert( input_iterator start, input_iterator end );

pair insert( const TYPE &val );

insert()函数:

插入val到pos的后面,然后返回一个指向这个元素的迭代器。

插入start到end的元素到multimap中。

只有在val不存在时插入val。返回值是一个指向被插入元素的迭代器和一个描述是否插入的bool值。

key_comp

语法:

key_compare key_comp();

key_comp()函数返回一个比较key的函数。

lower_bound

语法:

iterator lower_bound( const key_type &key );

lower_bound()函数返回一个迭代器,指向multimap中键值>=key的第一个元素。

max_size

语法:

size_type max_size();

max_size()函数返回multimap能够保存的最大元素个数。

rbegin

语法:

reverse_iterator rbegin();

rbegin()函数返回一个指向multimap尾部的逆向迭代器。

rend

语法:

reverse_iterator rend();

rend()函数返回一个指向multimap头部的逆向迭代器。

size

语法:

size_type size();

size()函数返回multimap中保存的元素个数。

swap

语法:

void swap( multimap &obj );

swap()交换obj和现mulitmap中的元素。

upper_bound

语法:

iterator upper_bound( const key_type &key );

upper_bound()函数返回一个迭代器,指向multimap中键值>key的第一个元素。

value_comp

语法:

value_compare value_comp();

value_comp()函数返回一个比较元素value的函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

时间: 2024-10-07 07:31:33

C++ 标准模板库STL multimap 使用方法与应用介绍的相关文章

C++ 标准模板库STL 队列 queue 使用方法与应用介绍

C++ 标准模板库STL 队列 queue 使用方法与应用介绍 queue queue模板类的定义在<queue>头文件中. 与stack模板类很相似,queue模板类也需要两个模板参数,一个是元素类型,一个容器类型,元素类型是必要的,容器类型是可选的,默认为deque类型. 定义queue对象的示例代码如下: queue<int> q1; queue<double> q2; queue的基本操作有: 入队,如例:q.push(x); 将x接到队列的末端. 出队,如例:

八、C++ 标准模板库-STL概述

C++ 标准模板库-STL概述 一.基本概念 1.1 泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用,重用在两个方面有体现: 面向对象的思想:继承和多态,标准类库 泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库 STL 简单地说就是使用模板的程序设计法.将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法. 标准模板库

标准模板库--STL

标准模板库STL 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用: 1.面向对象的思想:继承和多态,标准类库 2.泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库STL 简单地说就是使用模板的程序设计法. 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法.标准模板库 (Standard

PKU C++程序设计实习 学习笔记6 标准模板库STL

标准模板库STL 8.1 STL概述 1.泛型程序设计 C++ 语言的核心优势之一就是便于软件的重用 C++中有两个方面体现重用:1.面向对象的思想:继承和多态,标准类库  2.泛型程序设计(generic programming) 的思想: 模板机制,以及标准模板库 STL 简单地说就是使用模板的程序设计法. 将一些常用的数据结构(比如链表,数组,二叉树)和算法(比如排序,查找)写成模板,以后则不论数据结构里放的是什么对象,算法针对什么样的对象,则都不必重新实现数据结构,重新编写算法. 标准模

C++的标准模板库STL中实现的数据结构之顺序表vector的分析与使用

摘要 本文主要借助对C++的标准模板库STL中实现的数据结构的学习和使用来加深对数据结构的理解.即联系数据结构的理论分析和详细的应用实现(STL),本文是系列总结的第一篇,主要针对线性表中的顺序表(动态数组)STL vector进行分析和总结. 引言 因为前段时间对台大的机器学习基石和技法课程进行了学习,发如今详细的实现中经常涉及到各种类型的数据结构,比方线性表.二叉树.图等,在使用这些数据结构时感到有些吃力.主要是对一些主要的数据结构理解的不够.所以趁着暑假假期.近期一段时间总会抽出时间复习一

实验8 标准模板库STL

一.实验目的与要求: 了解标准模板库STL中的容器.迭代器.函数对象和算法等基本概念. 掌握STL,并能应用STL解决实际问题. 二.实验过程: 完成实验8标准模板库STL中练习题,见:http://acm.hpu.edu.cn/contest.php?cid=1020,密码c++08,共有5道题.将答题过程简单记录到实验过程中. 将答题结果写到实验结果中,并根据答题结果进行分析.反思,将其写到实验分析中,并写上实验时间.

标准模板库(STL)学习探究之vector容器

标准模板库(STL)学习探究之vector容器  C++ Vectors vector是C++标准模板库中的部分内容,它是一个多功能的,能够操作多种数据结构和算法的模板类和函数库.vector之所以被认为是一个容器,是因为它能够像容器一样存放各种类型的对象,简单地说,vector是一个能够存放任意类型的动态数组,能够增加和压缩数据.为了可以使用vector,必须在你的头文件中包含下面的代码:#include <vector>构造函数. Vectors 包含着一系列连续存储的元素,其行为和数组类

C++的标准模板库(STL)简介

STL(Standard Template Library,标准模板库)是C++对泛型编程思想的实现,最早是惠普实验室开发的.在被引入C++之前该技术就已经存在了很长的一段时间.后来STL成为ANSI/ISO C++标准的一部分.各个C++厂商也有各自相应的模板库,这些库效率可能很高,但可移植性不一定好. 在C++标准中,STL被组织为下面的17个头文件:<algorithm>.<deque>.<functional>.<iterator>.<arra

【c++】标准模板库STL入门简介与常见用法

一.STL简介 1.什么是STL STL(Standard Template Library)标准模板库,主要由容器.迭代器.算法.函数对象.内存分配器和适配器六大部分组成.STL已是标准C++的一部分,使用STL开发系统可以提高开发效率. 2.容器(Containers) 容器类是可以包含其它对象的模板类,如向量类(vector).链表类(list).双向队列类(deque).集合类(set)和映射类(map)等.其中vector.list.deque为序列式容器,set.map为关联式容器.