
STL
文章平均质量分 68
ec06cumt
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
初学STL子仿函数和函数适配器之一
仿函数即定义了operator()的对象。 如:FuncitonObjectTypeClass fo; fo(...); 其中fo()是调用fo的operator(),而非调用fo().这一点很重要是核心。 也就是说并不是将所有语句放在一般的函数中。 void fo(){ statements} 而是放在operator()中如下: class FuncitonObjectTyp原创 2012-08-22 18:19:16 · 661 阅读 · 0 评论 -
初学STL之函数适配器。
所谓函数适配器,也就是将一个仿函数或者另一个仿函数(或者数值)结合成新的仿函数。它声明与 中,如以下的定义find_if (coll.begin(),coll.end(),bind2nd(greater(),42)); 常用的预定义的函数适配器如下: bindlst(op,value) //其实它和下面的bind2nd,都是把op是二元仿函数转成一元仿函数,value作为一元仿函数原创 2012-08-23 09:36:52 · 751 阅读 · 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 · 4033 阅读 · 0 评论 -
C++模板参数为数组
本想写个模板函数,然后导成DLL,然后可以到处引用。可是后来发现,我的想法很天真。 由于C++是强类型语言,所以模板在用的时候必须确定其类型。而C++的模板只是一种语法糖,只不过是编译器在后台在做字符串替换罢了。 而dll导出的内容一定要是实实在在的,而模板必需要实例化成具体的东西,才能导出。 所以只能是在dll内部再写个类,把此类导出来,然后让此类内部去调用模板来实现。 在此写了两个参数原创 2012-11-07 15:31:57 · 3859 阅读 · 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 · 2383 阅读 · 0 评论