STL
文章平均质量分 63
十觞亦不醉
编程浪子
展开
-
STL: unordered_map 自定义键值类型的使用(C++)
当试图使用自定义类型作为 unordered_map 的键值时,则必须为自定义类型定义 Hash 函数与相等的判断条件。我们先定义自定义类型作键值,代码如下:struct KEY{ int first; int second; int third; KEY(int f, int s, int t) : first(f), second(s), third(t){}};原创 2015-11-14 17:45:16 · 21931 阅读 · 1 评论 -
STL: lower_bound, upper_bound用法(C++)
ForwardIter lower_bound(ForwardIter first, ForwardIter last,const _Tp& val) 返回一个非递减序列[first, last)中的第一个大于等于值val的位置。ForwardIter upper_bound(ForwardIter first, ForwardIter last, const _Tp& val) 返回原创 2015-11-14 21:44:21 · 886 阅读 · 0 评论 -
STL: bind1st, bind2nd 的使用(C++)
bind1st 和 bind2nd 函数用于将一个二元算子(binary functor,bf)转换成一元算子(unary functor,uf)。它们均需要两个参数:要转换的 fn 和一个值 x。简单理解,bind1st 把 x 作为 fn 的左值,bind2nd 把 x 作为 fn 的右值。看以下代码即可看出其功能: vector vec = {1, 2, 2, 3, 4};原创 2015-11-17 14:10:23 · 3884 阅读 · 3 评论 -
STL: reverse_iterator / iterator 关系以及 erase 相关(C++)
反向迭代器 相信大家对正向迭代器应该都很熟悉,然而对于反向迭代器的使用确是有几处需要注意的地方,在此记录一下。先看STL源码处注释如下: /** * Bidirectional and random access iterators have corresponding reverse * %iterator adaptors that iterate throug原创 2015-11-17 17:31:38 · 1096 阅读 · 2 评论 -
Effective C++ 一个简单的 String 类的 Reference Counting 实现(C++)
// Reference-counting pointertemplateclass RCPtr{public: RCPtr(T* realPtr = nullptr); RCPtr(const RCPtr& rhs); ~RCPtr(); RCPtr& operator = (const RCPtr& rhs); T* operator-> () const; T& ope原创 2015-12-10 14:09:18 · 498 阅读 · 0 评论 -
C++ std::mem_fn使用示例
#include #include #include #include #include #include #include #include using namespace std;using namespace std::placeholders;void hello(const string& s){ cout << s << endl;}struct原创 2016-09-13 11:52:04 · 4222 阅读 · 0 评论