c++/oop---STL find/ 函数对象 /关联容器/set和map
2022/4/9 20:19:02
本文主要是介绍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 不可以用[]
这篇关于c++/oop---STL find/ 函数对象 /关联容器/set和map的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-12-27文件掩码什么意思?-icode9专业技术文章分享
- 2024-12-27如何使用循环来处理多个订单的退款请求,代码怎么写?-icode9专业技术文章分享
- 2024-12-27VSCode 在编辑时切换到另一个文件后再切回来如何保持在原来的位置?-icode9专业技术文章分享
- 2024-12-27Sealos Devbox 基础教程:使用 Cursor 从零开发一个 One API 替代品 审核中
- 2024-12-27TypeScript面试真题解析与实战指南
- 2024-12-27TypeScript大厂面试真题详解与解析
- 2024-12-26怎么使用nsenter命令进入容器?-icode9专业技术文章分享
- 2024-12-26导入文件提示存在乱码,请确定使用的是UTF-8编码怎么解决?-icode9专业技术文章分享
- 2024-12-26csv文件怎么设置编码?-icode9专业技术文章分享
- 2024-12-25TypeScript基础知识详解