c++/oop---STL find/ 函数对象 /关联容器/set和map

find

template <class InIt,class T>
InIt find (InIt first, InIt last ,const T& val)

在[first,last) 按顺序查找和val相等的元素,如果找到就返回迭代器,否则就返回end

STL中的大小比较通过 < 实现

最好将 < 重载为全局函数,否则可能会出错

如果一个类将 () 运算符重载为成员函数,则这个类就称为函数对象类,这个类的对象是函数对象

可以认为能够将这个类的对象当成一个函数来使用

()是目数不限的运算符,重载为成员函数的时候有多少参数都可以。

关联容器

关联容器内部的元素是排好序的,有一下四种:

set

multiset

map

multimap

不可以修改 set/multiset 容器中元素的值,如果要修改,则应该先删除再加入。

同理也不可以修改 map/multimap 容器中的元素的关键字

前置知识: pair 类模板

函数 make_pair (x,y) 生成一个 pair 类对象

multiset

成员函数

iterator find (const T & val)

iterator insert(const T & val)

int count(const T &val)

iterator lower_bound(const T & val )

查找最大的位置 it 使得 [begin(),it) 中所有元素都比 val 小

iterator upper_bound(const t & val)

查找最小位置 it 使得 [it,end()) 中所有元素都比 val 大

用 erase 成员函数删除迭代器 it 指向的值以后,it 立即失效,++it 没有意义

--it 使得it < s.begin() 时,it 立即失效,++it 没有意义

multimap

template<class Key, class T,class Pred = less <key> >
class multimap{
    typedef pair<const Key,T> value_type
}

iterator find (const Key & val)

iterator insert(pair<Key,T> const & p) 

将 pair 对象 p 插入容器并返回其迭代器

int count(const Key &val)

iterator lower_bound(const Key & val )

查找最大的位置 it 使得 [begin(),it) 中所有元素的 Key 都比 val 小

iterator upper_bound(const t & val)

查找最小位置 it 使得 [it,end()) 中所有元素的 Key 都比 val 大

注意 multimap 不可以用[]

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值