随笔分类 - 我不熟悉的那些C++
再度复习C++,将我不常用的一些知识点记录下来。
摘要:C++回调函数、静态函数、成员函数踩过的坑。 明确一点即回调函数需要是静态函数。原因: + 普通的C++成员函数都隐含了一个 this指针 作为参数,这样使得回调函数的参数和成员函数参数个数不匹配。 若不想使用C式函数作为回调函数呢?(破坏封装性) 解决方法 + 使用static修饰成员函数。sta
阅读全文
摘要:在前面几篇中,已经有过好几次的仿函数结合遍历、查找等算法的使用了,这边再进行归纳一下。 仿函数(函数对象) 前面已经说过了,仿函数的特点有: + 是个类,不是个函数,可以说成是函数对象。 + 重载()。 + 内部可以声明一些变量,保存状态,如声明一个整型变量记录调用次数。 + 仿函数通常不声明构造函
阅读全文
摘要:讲map之前,其实很多都在set那篇讲过了。 "我不熟悉的set" 。 很多的API都类似,不会再累述。 map和set都是用红黑树实现的,但是set只能存单个值,它的key和value都是同一个,map不一样,它的每一个key都映射一个value. 接下来先介绍一些map自己的东西,再把和set一
阅读全文
摘要:同样的我着重介绍那些我不怎么用到的系列,同时,常用的我就点一下。 我们都知道set底层是用红黑树实现的,红黑树是一种已排序的树,所以我们通过迭代器来访问节点元素的时候,并不可以改变它,如果随意改变,那排序规则就乱套了。 讲API之前,现介绍一个 对组(pair) 的概念。 对组(pair)将一对值组
阅读全文
摘要:其实在日常中,链表的题目做的比较多,但是使用STL自带链表的还是比较少,所以里面的一些API不大熟悉。这边也简要介绍一些。 基本的一些API 先列举的这些和上面几篇用法几乎一样,所以不再累述。 赋值相关 list(beg,end);//构造函数将[beg, end)区间中的元素拷贝给本身。 list
阅读全文
摘要:由于stack和queue没有太多新的东西,故在此只把API拿出来小说一下,自己也记得比较牢靠一些。 stack常用API push(int elem); //向栈顶添加元素 pop(); //从栈顶移除第一个元素 top(); //返回栈顶元素empty();//判断堆栈是否为空 size();
阅读全文
摘要:构造函数 使用迭代器构造vector的一种方式: //将v[begin(), end())区间中的元素拷贝给本身 vector(v.begin(),v.end()); 在这个构造函数中,传入普通数组也是可以的。如: int arr[] = {1,2,3,4,5}; vector v(arr,arr
阅读全文
摘要:我不常用的string函数 多的不说,直接上: assign函数 string& assign(const char s); //把字符串s赋给当前的字符串 string& assign(const string &s); //把字符串s赋给当前字符串 string& assign(const ch
阅读全文