Lang. - C/C++
chen19870707
大家一起多交流~!
展开
-
引用 bind1st bind2nd
<br /> <br />本篇适合不熟悉这两个函数的读者 以前在使用stl的过程中发现bind1st和bind2nd这两个函数,当时不太理解什么意思,今天在网上查了一下相关资料发现竟然很简单,下面我就具体解释一下他们的用法。 bind1st和bind2nd函数用于将一个二元算子(binary functor,bf)转换成一元算子(unary functor,uf)。为了达到这个目的,它们需要两个参数:要转换的bf和一个值(v)。 可能这么解释以后大家还不是很清楚,那么就说点白话吧。我们在做比较的时候所写的表转载 2010-08-26 15:05:00 · 1245 阅读 · 0 评论 -
显示类型转换
<br /> <br /> <br /> 将一种类型转化成令一种类型,在程序设计中十分常见,C++仍然支持C语言的隐式类型转化,此外C++还提供了4种显示类型转换的操作函数:①reinterpret_cast②const_cast③static_cast④dynamic_cast,其中前三种是在编译期实现转化的,最后一个是在运行时实现转化的。<br />下面通过代码分别介绍四种显示转化:<br /> <br /> <br />①reinterpret_cast:将一个类型的的指针转化成另一个类型的指针,这原创 2010-08-25 16:49:00 · 168 阅读 · 0 评论 -
前缀操作符和后缀操作符的重载
前缀操作符和后缀操作符的重载前缀操作符:用在对象(或者变量)的前面的操作符;如++a前缀操作符的定义不带参数,如: Complex operator++ () { rad1 +=1; image +=1; return *this; }后缀操作符:用在对象(或者变量)的后面的操作符;如a++后缀操作符的定义需要一个int型参数,这个参数实际上没有任何用途,只是占位符,如此处的mComplex operator++ (int m) { real+=10; i原创 2010-08-25 11:45:00 · 1058 阅读 · 0 评论 -
error C2679: 二进制“”类型的右操作数的运算符(或没有可接受的转换)
<br />#include <iostream>#include <vector>int main(){ std::vector<std::string> vect; std::vector<std::string>::iterator iter; vect.push_back("bird"); vect.push_back("dog"); for(iter = vect.begin();iter!=vect.end();iter++) { std::cout原创 2010-08-26 11:16:00 · 7162 阅读 · 0 评论 -
函数对象编程模式
<br />函数对象与函数指针的区别:<br /> <br />函数对象实际上是一个类的对象,不过在使用的时候可以直接使用类名,编译的时候可以内联。<br />函数指针因为是用了指针,所以在编译的时候不能向内联函数那样在调用地直接展开,需要一定的开销。<br /><br />函数对象内部需提供operator()操作函数,支持传统函数调用,示例如下:#pragma warning(disable:4101)#include <iostream>#include <vector>#include原创 2010-08-27 14:58:00 · 761 阅读 · 0 评论 -
有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。
有n个长为m+1的字符串,如果某个字符串的最后m个字符与某个字符串的前m个字符匹配,则两个字符串可以联接,问这n个字符串最多可以连成一个多长的字符串,如果出现循环,则返回错误。分析一下,将各个字符串作为一个节点,首尾链接就好比是一条边,将两个节点连接起来,于是问题就变成一个有关图的路径长度的问题。链接所得的字符串最长长度即为从图的某个节点出发所能得到的最长路径问题,与最短路径类似,可以应用原创 2012-09-02 15:48:51 · 204 阅读 · 0 评论 -
C++ json库jsoncpp 吐槽
最近在做游戏接入SDK时用到C++的json库jsoncpp,jsoncpp 是一款优秀的json库,但恶心的一点是它采用Assert作为错误处理方法,而assert在linux下通过调用 abort 来终止程序运行,对于服务器而言将会收到SIGABRT,崩溃打出core,这对于服务器而言是致命的,下面总结了几种 Assertion `type_ == nullValue || type_ == object Value' failed的情况.原创 2014-09-28 19:56:46 · 24042 阅读 · 4 评论 -
站在巨人的肩膀上,C++开源库大全
内容包括:标准库、Web应用框架、人工智能、数据库、图片处理、机器学习、日志、代码分析等。标准库C++ Standard Library:是一系列类和函数的集合,使用核心语言编写,也是C++ISO自身标准的一部分。Standard Template Library:标准模板库C POSIX library : POSIX系统的C标准库规范ISO C++ Standards转载 2014-10-24 15:04:26 · 15064 阅读 · 5 评论