STL
文章平均质量分 68
ec06cumt
这个作者很懒,什么都没留下…
展开
-
初学STL子仿函数和函数适配器之一
仿函数即定义了operator()的对象。如:FuncitonObjectTypeClass fo;fo(...);其中fo()是调用fo的operator(),而非调用fo().这一点很重要是核心。也就是说并不是将所有语句放在一般的函数中。 void fo(){ statements}而是放在operator()中如下:class FuncitonObjectTyp原创 2012-08-22 18:19:16 · 616 阅读 · 0 评论 -
初学STL之函数适配器。
所谓函数适配器,也就是将一个仿函数或者另一个仿函数(或者数值)结合成新的仿函数。它声明与中,如以下的定义find_if (coll.begin(),coll.end(),bind2nd(greater(),42));常用的预定义的函数适配器如下:bindlst(op,value) //其实它和下面的bind2nd,都是把op是二元仿函数转成一元仿函数,value作为一元仿函数原创 2012-08-23 09:36:52 · 725 阅读 · 0 评论 -
STL string忽略大小写的字符替换
STL没有提供忽略大小写的字符比较,一般都用c_str(),得到char*,然后利用C的strcasecmp,strncasecmp,进行字符的比较。详细的比较字符可以用下面的函数,忽略大小写的字符串比较,然后进行替换操作。再次就不提了,读者可以自己尝试。const char* strcasestr(const char* str, const char* subStr){原创 2012-11-02 13:54:12 · 3904 阅读 · 0 评论 -
C++模板参数为数组
本想写个模板函数,然后导成DLL,然后可以到处引用。可是后来发现,我的想法很天真。由于C++是强类型语言,所以模板在用的时候必须确定其类型。而C++的模板只是一种语法糖,只不过是编译器在后台在做字符串替换罢了。而dll导出的内容一定要是实实在在的,而模板必需要实例化成具体的东西,才能导出。所以只能是在dll内部再写个类,把此类导出来,然后让此类内部去调用模板来实现。在此写了两个参数原创 2012-11-07 15:31:57 · 3806 阅读 · 0 评论 -
std::bind,std::cref的简单使用
#include #include #include void f(int n1, int n2, int n3, const int& n4, int n5){ std::cout n1 ' ' n2 ' ' n3 ' ' n4 ' ' n5 '\n';} int g(int n1){ return n1;} struct Foo {原创 2013-03-18 11:04:52 · 2311 阅读 · 0 评论